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:
  1. 3
  2. Team000002 Rlsp0dfa
  3. Team000003 perfectpwd
  4. Team000001 R1spOdfa
Sample Output 1:
  1. 2
  2. Team000002 RLsp%dfa
  3. Team000001 R@spodfa
Sample Input 2:
  1. 1
  2. team110 abcdefg332
Sample Output 2:
  1. There is 1 account and no account is modified
Sample Input 3:
  1. 2
  2. team110 abcdefg222
  3. team220 abcdefg333
Sample Output 3:
  1. There are 2 accounts and no account is modified
思路
  • 用结构体表示数据,如果密码需要修改的就放到结构体数组里,最后根据修改的数量和n的大小来决定输出
代码
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct user
  4. {
  5. string id;
  6. string password;
  7. }a[1010];
  8. int a_num = 0;
  9. int main()
  10. {
  11. int n;
  12. cin >> n;
  13. string id, ps;
  14. bool modify = false;
  15. for(int j=0;j<n;j++)
  16. {
  17. cin >> id >> ps;
  18. modify = false; //表示有无修改过
  19. for(int i=0;i<ps.size();i++)
  20. {
  21. if(ps[i] == '1')
  22. {
  23. modify = true;
  24. ps[i] = '@';
  25. }else
  26. if(ps[i] == '0')
  27. {
  28. modify = true;
  29. ps[i] = '%';
  30. }else
  31. if(ps[i] == 'l')
  32. {
  33. modify = true;
  34. ps[i] = 'L';
  35. }else
  36. if(ps[i] == 'O')
  37. {
  38. modify = true;
  39. ps[i] = 'o';
  40. }
  41. }
  42. if(modify)
  43. {
  44. a[a_num].id = id;
  45. a[a_num++].password = ps;
  46. }
  47. }
  48. if(a_num == 0)
  49. if(n != 1)
  50. printf("There are %d accounts and no account is modified", n);
  51. else
  52. printf("There is 1 account and no account is modified");
  53. else
  54. {
  55. cout << a_num<< endl;
  56. for(int i=0;i<a_num;i++)
  57. {
  58. cout << a[i].id << " " << a[i].password;
  59. cout << endl;
  60. }
  61. }
  62. return 0;
  63. }
引用

https://pintia.cn/problem-sets/994805342720868352/problems/994805454989803520

PTA (Advanced Level)1035.Password的更多相关文章

  1. PAT (Advanced Level) 1035. Password (20)

    简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...

  2. PTA(Advanced Level)1036.Boys vs Girls

    This time you are asked to tell the difference between the lowest grade of all the male students and ...

  3. PTA (Advanced Level) 1004 Counting Leaves

    Counting Leaves A family hierarchy is usually presented by a pedigree tree. Your job is to count tho ...

  4. PTA (Advanced Level) 1020 Tree Traversals

    Tree Traversals Suppose that all the keys in a binary tree are distinct positive integers. Given the ...

  5. PTA (Advanced Level) 1010 Radix

    Radix Given a pair of positive integers, for example, 6 and 110, can this equation 6 = 110 be true? ...

  6. PTA(Advanced Level)1025.PAT Ranking

    To evaluate the performance of our first year CS majored students, we consider their grades of three ...

  7. PTA (Advanced Level) 1009 Product of Polynomials

    1009 Product of Polynomials This time, you are supposed to find A×B where A and B are two polynomial ...

  8. PTA (Advanced Level) 1008 Elevator

    Elevator The highest building in our city has only one elevator. A request list is made up with Npos ...

  9. PTA (Advanced Level) 1007 Maximum Subsequence Sum

    Maximum Subsequence Sum Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous su ...

随机推荐

  1. VO、DTO、POJO、PO的区别

    VO 即value object值对象.主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象.然后用一个VO对象在控制层与视图层进行传输交换. DTO 经过处理后的PO,可能增加或者 ...

  2. node中的stream(流)内置模块

    stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持“流”这种数据结构. 什么是流?流是一种抽象的数据结构.想象水流,当在水管中流动时,就可以从某个地方(例如自来水厂)源源不断地 ...

  3. Python图形用户界面-Tkinter

    Tkinter是什么 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多一个直观的功能,如何想开发一个计算器,如果 ...

  4. elasticsearch+logstash+kibana部署

    这篇博客讲的是elasticsearch+logstash+kibana部署的方法. 内容大纲: 1.elasticsearch+logstash+kibana部署 2.收集Tomcat日志 3.收集 ...

  5. zookeeper系列(九)zookeeper的会话详解

    作者:leesf    掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6103870.html尊重原创,大家共同学习: 一.前言 ...

  6. cmd ora-12560协议适配器错误

    这个问题我解决了很久,其实问题的关键在于我在本机安装了一个Oracle11g数据库以及安装了一个Oracle Client,导致在使用sqlplus / as sysdba链接时出现报协议适配器的错误 ...

  7. git基本操作命令和安装

    git客户端下载及安装 git.png git官方下载链接 1. 添加到桌面 添加到桌面.png (1)图标组件(Addition icons) : 选择是否创建桌面快捷方式. (2)桌面浏览(Win ...

  8. [学习]sentinel中的DatatSource(二) WritableDataSource

    sentinel是今年阿里开源的高可用防护的流量管理框架. git地址:https://github.com/alibaba/Sentinel wiki:https://github.com/alib ...

  9. 对 Python 迭代的深入研究

    在程序设计中,通常会有 loop.iterate.traversal 和 recursion 等概念,他们各自的含义如下: 循环(loop),指的是在满足条件的情况下,重复执行同一段代码.比如 Pyt ...

  10. linux 下项目的发布

    [wangq10@VM000001865 logs]$ [wangq10@VM000001865 ~]$ ls[wangq10@VM000001865 logs]$ apache-tomcat-7.0 ...