1035. Password (20)
2016-04-22 15:29
337 查看
To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L in lowercase), or 0 (zero) from O (o in uppercase). One solution
is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords.
Input Specification:
Each input file contains one test case. Each case contains a positive integer N (<= 1000), followed by N lines of accounts. Each account consists of a user name and a password, both are strings of no more than 10 characters with no space.
Output Specification:
For each test case, first print the number M of accounts that have been modified, then print in the following M lines the modified accounts info, that is, the user names and the corresponding modified passwords. The accounts must be printed in the same order
as they are read in. If no account is modified, print in one line "There are N accounts and no account is modified" where N is the total number of accounts. However, if N is one, you must print "There is 1 account and no account is modified" instead.
IDEA
1.一个int Modify(string &s); 函数解决问题:边遍历边修改,返回是否进行了修改
2.如果password被修改了,则count++,并存入vec;
3.输出vec中存入的数据
CODE
is to replace 1 (one) by @, 0 (zero) by %, l by L, and O by o. Now it is your job to write a program to check the accounts generated by the judge, and to help the juge modify the confusing passwords.
Input Specification:
Each input file contains one test case. Each case contains a positive integer N (<= 1000), followed by N lines of accounts. Each account consists of a user name and a password, both are strings of no more than 10 characters with no space.
Output Specification:
For each test case, first print the number M of accounts that have been modified, then print in the following M lines the modified accounts info, that is, the user names and the corresponding modified passwords. The accounts must be printed in the same order
as they are read in. If no account is modified, print in one line "There are N accounts and no account is modified" where N is the total number of accounts. However, if N is one, you must print "There is 1 account and no account is modified" instead.
IDEA
1.一个int Modify(string &s); 函数解决问题:边遍历边修改,返回是否进行了修改
2.如果password被修改了,则count++,并存入vec;
3.输出vec中存入的数据
CODE
#include<iostream> #include<cstring> #include<vector> using namespace std; struct Stu{ string username; string password; }; int Modify(string &s){ int len=s.length(); int flag=0; for(int i=0;i<len;i++){ switch(s[i]){ case '1':s[i]='@';flag=1;break; case '0':s[i]='%';flag=1;break; case 'l':s[i]='L';flag=1;break; case 'O':s[i]='o';flag=1;break; } } if(flag){ return 1;//需要修改 } return 0; } int main(){ int n; cin>>n; int count=0; vector<Stu> vec; for(int i=0;i<n;i++){ Stu stu; cin>>stu.username>>stu.password; if(Modify(stu.password)){ count++; vec.push_back(stu); } } if(count==0){ if(n==1){ cout<<"There is "<<n<<" account and no account is modified"; }else{ cout<<"There are "<<n<<" accounts and no account is modified"; } }else{ cout<<count<<endl; for(int i=0;i<vec.size();i++){ cout<<vec[i].username<<" "<<vec[i].password<<endl; } } return 0; }
相关文章推荐
- 【排序】简单选择排序
- Makefile经典教程(掌握这些足够)
- JAVA利用axis2发布webservice
- 在MVC里面使用Response.Redirect方法后记得返回EmptyResult
- Android AnimationSet详解
- MarkDown基本语法
- jsp引用C标签报错小常识
- activity和fragment的生命周期
- 测试点遗漏问题
- C#中使用split分割字符串的几种方法小结
- Android自定义属性为应用程序设置全局背景
- 魔法少女
- Android自动化测试MonkeyRunner(二)------第一个示例
- ubuntu brackets中安装插件
- Android Design Support Library使用详解
- C++类的对象和类的指针的区别
- 16-4.21随笔
- 工作问题-java-单值查询renderJson返回
- 学习笔记之深入浅出MFC 第6章 Console程序介绍
- 记录 机器学习牛人