阿里9.16笔试
一共就ac了1.3,第二题只a了36%,第三题直接0,大火有ac的代码或者可以帮忙看看我第二题的代码嘛
#include <iostream> using namespace std; int main() { int t = 0; cin >> t; while (t--) { int n = 0; int flag = 0; cin >> n; char str1[200000]; char str2[200000]; cin >> str1 >> str2; for (int i = 0; i < n; ++i) { // 如果相同位置的元素不相等 if (str1[i] != str2[i]) { // 如果是开头和结尾的元素不相等,直接输出NO if (i == 0 || i == n - 1) { cout << "NO" << endl; flag = 1; break; // 如果前一个元素和后一个元素相等,直接返回NO } else if (str1[i - 1] == str1[i + 1]) { cout << "NO" << endl; flag = 1; break; // 如果前一个元素和后一个元素相等,反转当前元素 } else if (str1[i - 1] != str1[i + 1]){ if (str1[i] == '1') str1[i] = '0'; else str1[i] = '1'; } } } // 如果跑到了最后,输出YES if (flag == 0) { cout << "YES" << endl; } } return 0; }