解题步骤:
1、问题需要在最后一起输出结果,所以需要用数组把每一个结果逐一存储起来;
2、把每个输入id和对应的字符串存储到数组中,并将字符串进行处理;如果处理后发生改变,保存并计数;否则不做操作。
代码实现:
#includeusing namespace std; #define maxn 1010 string change(string& s) { string str; for (int i = 0; i < s.size(); i++) { if (s[i] == '1') { str += '@'; } else if (s[i] == '0') { str += '%'; } else if (s[i] == 'O') { str += 'o'; } else if (s[i] == 'l') { str += 'L'; } else { str += s[i]; } } return str; } int main() { int T; cin >> T; int m = 0; string id[maxn], s[maxn]; string ans_id[maxn], ans[maxn]; for (int i = 0; i < T; i++) { string temp; cin >> id[i] >> s[i]; temp = change(s[i]); if (temp != s[i]) { ans_id[m] = id[i]; ans[m] = temp; m++; } } if (T == 1 && m == 0) { cout << "There is 1 account and no account is modified" << endl; } else if (m == 0) { printf("There are %d accounts and no account is modified", T); } else { cout << m << endl; for (int i = 0; i < m; i++) { cout << ans_id[i] << " " << ans[i] << endl; } } return 0; }



