ZOJ 2514 题解
正如CYJJ所说,这个题目是Killing in Seconds,没有什么算法,直接根据题目做,题目怎么说我就 怎么做。
题目的大概意思就是,给出一个用户名和一个密码,把密码里面的1改为@,0改为%,l改为L,O改为o,然后在结果中输出来修改过的密码,当然用户名也是 要输出来的,如果一个也没有修改过,就输出No account is modified.
不动脑子直接做,附上代码:in C++
代码
1 #include<iostream>
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8 int n;
9 string name,pwd;
10 vector<string> vname,vpwd;
11
12 while(cin>>n && n != 0)
13 {
14 for(int i = 0 ; i < n ; i ++)
15 {
16 cin>>name>>pwd;
17 int flag = 0 ;
18 for(int j = 0 ; j != pwd.size() ; j ++)
19 {
20 switch(pwd[j])
21 {
22 case '1': pwd[j] = '@';
23 flag = 1;
24 break;
25 case '0': pwd[j] = '%';
26 flag = 1;
27 break;
28 case 'l': pwd[j] = 'L';
29 flag = 1;
30 break;
31 case 'O': pwd[j] = 'o';
32 flag = 1 ;
33 break ;
34 default:break;
35 }
36
37 }
38 if(flag)
39 {
40 vname.push_back(name);
41 vpwd.push_back(pwd);
42 }
43
44
45 }
46 if(vname.size())
47 {
48 cout<<vname.size()<<endl;
49 for(int i = 0 ; i != vname.size() ; i ++)
50 cout<<vname[i]<<" "<<vpwd[i]<<endl;
51 }
52 else cout<<"No account is modified."<<endl;
53 vname.clear();
54 vpwd.clear();
55 }
56
57 return 0;
58 }
2 #include<string>
3 #include<vector>
4 using namespace std;
5
6 int main()
7 {
8 int n;
9 string name,pwd;
10 vector<string> vname,vpwd;
11
12 while(cin>>n && n != 0)
13 {
14 for(int i = 0 ; i < n ; i ++)
15 {
16 cin>>name>>pwd;
17 int flag = 0 ;
18 for(int j = 0 ; j != pwd.size() ; j ++)
19 {
20 switch(pwd[j])
21 {
22 case '1': pwd[j] = '@';
23 flag = 1;
24 break;
25 case '0': pwd[j] = '%';
26 flag = 1;
27 break;
28 case 'l': pwd[j] = 'L';
29 flag = 1;
30 break;
31 case 'O': pwd[j] = 'o';
32 flag = 1 ;
33 break ;
34 default:break;
35 }
36
37 }
38 if(flag)
39 {
40 vname.push_back(name);
41 vpwd.push_back(pwd);
42 }
43
44
45 }
46 if(vname.size())
47 {
48 cout<<vname.size()<<endl;
49 for(int i = 0 ; i != vname.size() ; i ++)
50 cout<<vname[i]<<" "<<vpwd[i]<<endl;
51 }
52 else cout<<"No account is modified."<<endl;
53 vname.clear();
54 vpwd.clear();
55 }
56
57 return 0;
58 }