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

mac2025-05-02  4

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

#include <iostream> #include <string> 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<<val)即得到对于bit位上的mask. 然后与 checker的位相与, 看是否为1 { cout << "N" << endl; //为1, 说明已经出现过 return 0; } checker |= (1<<val); //否则把这一位 置1 } cout << "Y" << endl; }

注:mask用得非常的秀。

最新回复(0)