PAT甲级练习1035. Password (20)
来源:互联网 发布:淘宝网花花姑娘笔袋 编辑:程序博客网 时间:2024/06/05 19:11
1035. Password (20)
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.
Sample Input 1:
3Team000002 Rlsp0dfaTeam000003 perfectpwdTeam000001 R1spOdfaSample Output 1:
2Team000002 RLsp%dfaTeam000001 R@spodfaSample Input 2:
1team110 abcdefg332Sample Output 2:
There is 1 account and no account is modifiedSample Input 3:
2team110 abcdefg222team220 abcdefg333Sample Output 3:
There are 2 accounts and no account is modified
一开始用char *而不是string来做,发现在struct中地址是连续的,直接输出会把name和pwd都输出,把flag插在两个char *中间会改善这种情况,但直接输出还是有些问题,所以还是用string来做好了,时间也充裕
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <map>#include <set>#include <string>#include <string.h>using namespace std;struct account{string name;bool flag;string pwd;}a[1000];int main(){bool iflag=false;int n, cnt=0;scanf("%d", &n);for(int i=0; i<n; i++){cin>>a[i].name>>a[i].pwd;a[i].flag = false;for(int j=0; j<a[i].pwd.length(); j++){if(a[i].pwd[j]=='1'){a[i].pwd[j] = '@';a[i].flag = true;iflag = true;}else if(a[i].pwd[j]=='0'){a[i].pwd[j] = '%';a[i].flag = true;iflag = true;}else if(a[i].pwd[j]=='l'){a[i].pwd[j] = 'L';a[i].flag = true;iflag = true;}else if(a[i].pwd[j]=='O'){a[i].pwd[j] = 'o';a[i].flag = true;iflag = true;}}if(iflag==true){cnt++;iflag = false;}}iflag = true;if(cnt!=0)printf("%d\n", cnt);for(int i=0; i<n; i++){if(a[i].flag==true){cout<<a[i].name<<" "<<a[i].pwd<<endl;iflag = false;}}if(iflag==true){if(n==1) printf("There is 1 account and no account is modified\n");else printf("There are %d accounts and no account is modified\n", n);}cin>>n;return 0;}
- PAT甲级练习1035. Password (20)
- PAT甲级.1035. Password (20)
- 【PAT甲级】1035. Password (20)
- 1035. Password (20)PAT 甲级
- PAT甲级1035. Password (20)
- PAT 甲级 1035. Password (20)
- PAT甲级 1035. Password (20)
- 1035. Password (20)-PAT甲级真题
- PAT(甲级)1035. Password (20)
- PAT甲级练习1008. Elevator (20)
- PAT甲级练习1015. Reversible Primes (20)
- PAT甲级练习1041. Be Unique (20)
- PAT甲级练习1042. Shuffling Machine (20)
- PAT甲级练习1046. Shortest Distance (20)
- PAT甲级练习1050. String Subtraction (20)
- PAT甲级练习1061. Dating (20)
- PAT甲级练习1073. Scientific Notation (20)
- [转]PAT甲级练习1077. Kuchiguse (20)
- ResourseBundle学习笔记"Canot find bundle for base name"
- spring-springmvc-mybatis-maven整合的简单工程
- 【数据结构】找出N个数据中最大的前k个数据(利用堆排序)
- C++ 字符串流sstream
- Android sendevent/getevent 用法
- PAT甲级练习1035. Password (20)
- 使APP长期后台运行
- Unity编程笔录--Tango创建一个简单AR应用
- linux指令学习-uname指令
- TableLayout与ToolBar的完美结合?
- HDU5414 CRB and String 字符串+模拟+思维
- mybatis异常
- 程序员多大年纪算高龄,届时该何去何从?
- [leetcode]498. Diagonal Traverse