首页 > 代码库 > 1.1

1.1

1.1 Implement an algorithm to determine if a string has all unique characters. Whatif you cannot use additional data structures? 

 1 #include <iostream> 2 #include <queue> 3 #include <climits> 4 #include <algorithm> 5 #include <memory.h> 6 #include <stdio.h> 7 #include <map> 8 #include <vector> 9 #include <list>10 #include <stack>11 using namespace std;12 13 ///判断一个字符串是否有重复字符出现14 ///corner case:字符串为null15 //思路1:如果字符串采用的是ascii编码的话,建立一个256大小的bool数组16 //初始设置为true,出现一次相应位置设置为false,如果碰到已经是false的了17 //就返回false;否则返回true18 //空间复杂度:O(1),时间复杂度:O(n)19 bool fun_1(string s)20 {21     bool isExisist[256];22     memset(isExisist,true,sizeof(isExisist));23     if(s.length() == 0)24         return false;25     int i;26     for(i = 0 ; i < s.length() ; ++i)27     {28         //cout<<(int)s[i]<<endl;29         if(isExisist[s[i]] == false)30             return false;31         isExisist[s[i]] = false;32     }33     return true;34 }35 //思路2:如果不能使用额外数据结构,那么可以直接暴力求解36 //或者如果可以打乱原始字符串顺序的话,可以先排序后遍历37 //实现:无38 39 int main(int argc, char *argv[])40 {41     string s = "aaa";42     cout<<fun_1(s)<<endl;43     return 0;44 }