157. 判断字符串是否没有重复字符

实现一个算法确定字符串中的字符是否均唯一出现

 

样例

给出"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)

如果不使用额外的空间,可以通过套两层循环来暴力

posted @ 2017-12-19 05:07  三人木君  阅读(220)  评论(0编辑  收藏  举报