A1071 Password 🔥
💙content
https://pintia.cn/problem-sets/A1071
🐶【String】
❗️issue
1.Attention to the output format : n >1 “is”->“are” , n+s
There is 1 account and no account is modified
There are 2 accounts and no account is modified
2.unintentional error : for(int j = 0; j != pwd.length(); j++)
lead to test 4 ,5 fail
⭐️solution
!!!key!!!—>
using switch to replace the character;
flag :if the string change
num : the number of string changed
switch(pwd[j]){
case '1':pwd[j] = '@';flag = 1;break;
case '0':pwd[j] = '%';flag = 1;break;
case 'l':pwd[j] = 'L';flag = 1;break;
case 'O':pwd[j] = 'o';flag = 1;break;
}
💻 code
#include <bits/stdc++.h>
using namespace std;
struct account{
string acc , pwd;
};
int main()
{
int n;
scanf("%d" ,&n);
vector<account> v(n);
int num = 0;
for(int i = 0; i != n; i++){
string acc , pwd;
cin >> acc >> pwd;
int flag = 0 ;
for(int j = 0; j != pwd.length(); j++){
switch(pwd[j]){
case '1':pwd[j] = '@';flag = 1;break;
case '0':pwd[j] = '%';flag = 1;break;
case 'l':pwd[j] = 'L';flag = 1;break;
case 'O':pwd[j] = 'o';flag = 1;break;
}
}
if(flag == 1){
v[num].acc = acc;
v[num].pwd = pwd;
num++;
}
}
if(num == 0){
if(n == 1) printf("There is 1 account and no account is modified");
if(n > 1) printf("There are %d accounts and no account is modified" , n);
}
else{
cout << num << endl;
for(int i = 0; i != num; i++){
cout << v[i].acc << " " << v[i].pwd;
if(i != num - 1) cout << endl;
}
}
return 0;
}