Leetcode 面试题 01.01. 判定字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
最开始想的是字符可能范围是0~255,毕竟给的字符串长度小于100,如果只有小写字母那还给100干嘛。
几种可行的方法:
1.排序
2.用set记录出现过的字符
3.用一个vector(255,0)来记录
4.全部加入set,比较和原数组的大小
5.下面代码的方法,利用一个32位int做记录,当然这是默认字符串中只有小写字母的前提下:
class Solution { public: bool isUnique(string astr) { if(astr.size()<2){return true;} int p=0; for(int i=0;i<astr.size();++i){ if((1<<(astr[i]-‘a‘))&p){ return false; } p|=(1<<(astr[i]-‘a‘)); } return true; } };
相关推荐
世事一场大梦 2020-11-17
wangzhaotongalex 2020-10-20
rechanel 2020-11-16
cakecc00 2020-11-06
cshanzhizi 2020-10-16
luofuIT成长记录 2020-09-22
周游列国之仕子 2020-09-21
PYTandFA 2020-09-15
taomengxing 2020-09-07
MaggieRose 2020-08-19
kevinweijc 2020-08-18
earthhouge 2020-08-18
yonggeno 2020-08-18
jyj00 2020-08-15
CXsilent 2020-08-12
amberom 2020-08-03
yiyilanmei 2020-08-03
纬纬 2020-07-31
zhuyonge 2020-07-26