实现一个算法确定字符串中的字符是否均唯一出现
样例
给出"abc"
,返回 true
给出"aab"
,返回 false
ASCⅡ一共有128个字符,给每一个字符一个bool位,初始状态为null
每碰见一个就设成true,如果遇见了一个true说明是第二次了,return false
1 bool isUnique(string &str) { 2 // write your code here 3 if (str.length() > 128){ 4 return false; 5 } 6 vector<bool> char_set(128); 7 for (int i = 0; i < str.length(); i++){ 8 int val = str[i]; 9 if (char_set[val]){ 10 return false; 11 } 12 char_set[val] = true; 13 } 14 return true; 15 }
这个解法是通过hashmap实现的,需要额外的空间,但是时间是O(n)
如果不使用额外的空间,可以通过套两层循环来暴力