确定一个字符串的所有字符是否全都不同

来源:互联网 发布:剑桥秦汉史 知乎 编辑:程序博客网 时间:2024/04/29 18:47

题目:给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。


思路:用一个int做位运算,一个int4个字节32位,一共26个字母绰绰有余。


代码:


#include <iostream>#include <string>#include <algorithm>using namespace std;bool checkDifferent(string iniString){//ascii字符集只有256个字符if(iniString.size() > 256)return false;int loop = 0;int len = iniString.size();for(int i=0;i<len;++i){int val = 1 << (iniString[i] - 'a');if((loop & val) > 0)return false;loop |= val;}return true;}int main(){cout << checkDifferent("aeiou") << endl;cout << checkDifferent("barackobama") << endl;return 0;}


0 0
原创粉丝点击