这题其实就是一道水题,简而言之,就是字符串的替换,然后再加一点条件判断,比如n的大小和m的大小,其他没啥了
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
int n;
cin >> n;
vector<string> arr(2*n);
for (int i = 0; i < n; i++)
{
cin >> arr[2*i];
cin >> arr[2 * i+1];
}
if (n == 1)
{
cout << "There is 1 account and no account is modified";
}
else if (n > 1)
{
int count = 0;
vector<int> arrIndex;
for (int i = 0; i < n; i++)
{
int flag = 0;
string str = arr[2 * i + 1];
string strNew = "";
for (int j = 0; j < str.length(); j++)
{
if (str[j] == '1')
{
strNew += "@";
flag++;
continue;
}
else if (str[j] == '0')
{
strNew += "%";
flag++;
continue;
}
else if (str[j] == 'l')
{
strNew += "L";
flag++;
continue;
}
else if (str[j] == 'O')
{
strNew += "o";
flag++;
continue;
}
strNew += str[j];
}
if (flag > 0)
{
arrIndex.push_back(i);
arr[2 * i + 1] = strNew;
count++;
}
}
if (count == 0)
{
cout << "There are " << n << " accounts and no account is modified";
}
else
{
cout << count;
for (int i = 0; i < count; i++)
{
cout << endl;
cout << arr[arrIndex[i] * 2] << " " << arr[arrIndex[i] * 2 + 1];
}
}
}
system("pause");
}