以下代码用于检查两个字符串是否具有公共子字符串,如果存在公共子字符串则打印YES;如果没有公共子字符串,则显示NO。 线号No:7到底是做什么的?请解释一下。
1 #include<iostream>
2 using namespace std;
3
4 int letterBits(const string &s) {
5 int bits = 0;
6 for (char ch : s)
7 bits |= 1 << (ch - 'a');
8 return bits;
10 }
11
12 int main() {
13 int testCases;
14 cin >> testCases;
15 while (testCases--) {
16 string strA, strB;
17 cin >> strA >> strB;
18 int bitsA = letterBits(strA);
19
20 int bitsB = letterBits(strB);
21 cout<<bitsB<<" ";
22 cout << (bitsA & bitsB ? "YES": "NO") << endl;
23 }
24 return 0;
25 }
答案 0 :(得分:1)
第7行为它找到的每个字母设置一个整数位。 (例如,如果字母是'a'则设置位0,如果字母是'b'则设置位1等)。
此方法仅检查2个字符串是否具有相同的字母,因此“abc”==“cba”。