以下代碼用於檢查兩個字符串是否具有公共子字符串,如果存在公共子字符串,則輸出YES;如果沒有公共子字符串,則輸出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 }
有些人會輸入一個字符串來產生負面的或過大的結果給'(ch - 'a')'......這只是一種不好的技術。 –
謝謝你的漂亮的格式和行號。 +1 –
請注意,在第7行的語義中,<< << >>運算符是*左移*,而不是流插入。 –