判断一个字符串中是否有重复字符

简单题目
判断一个字符串中是否含有重复字符

#include 
#include 
 
using namespace std;
 
int main()
{
    string s;
    cin >> s;
    int checker = 0;
 
    for (int i = 0; i < s.length(); i++)
    {
        int val = s[i] - 'a'; //把a-z的字符, 转换成 0-25的数字
        if ((checker & (1<<val)) > 0)  // (1<
        {
            cout << "N" << endl;  //为1, 说明已经出现过
            return 0;
        }
        checker |= (1<<val);  //否则把这一位 置1
    }
 
    cout << "Y" << endl;
}

注:mask用得非常的秀。

你可能感兴趣的:(算法(UVa,+,LeetCode,+,OJ,+,……))