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)

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

转载于:https://www.cnblogs.com/TheLaughingMan/p/8063568.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值