PAT甲級1035 Password:[C++題解]字串修改
阿新 • • 發佈:2021-01-19
技術標籤:PAT甲級
文章目錄
題目分析
題目重述:
題目分析:
- 把需要更改的字母和對應的字母分別存在string中,兩者下標索引要對應。
- 採用 vector來儲存< string, string>這樣的pair便於輸出
ac程式碼
#include<bits/stdc++.h>
using namespace std;
string Name,Code;
typedef pair< string ,string> PII;
vector<PII> vec;
int main(){
int n;
cin>>n;
int N=n;
int cntM =0;
string suffix = "01lO";
string replace="%@Lo";
while(n--){
string name,code;
cin>>name>>code;
bool flag =true; //沒改過
for(int i=0;i<code.size();i++){
int pos=suffix. find(code[i]);
if(pos!= -1){
code[i]=replace[pos];
flag =false;
}
}
if(!flag) cntM++,vec.push_back({name,code});
}
if(cntM){ //有修改過的
cout<< cntM<<endl;
for(auto c:vec){
cout< < c.first<<" "<<c.second<<endl;
}
}else{
if(N!=1)
cout<<"There are "<< N <<" accounts and no account is modified";
else
cout<<"There is "<< N<<" account and no account is modified";
}
}