885
备注:
|
1512
|
删除的内容标记成这样。 | 加入的内容标记成这样。 |
行号 3: | 行号 3: |
Time limit: 1 Seconds | Time limit: 1 Seconds |
行号 5: | 行号 5: |
Memory limit: 32768K | Memory limit: 32768K |
行号 11: | 行号 11: |
行号 14: | 行号 12: |
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 100. |
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 100. |
行号 19: | 行号 15: |
行号 28: | 行号 23: |
行号 35: | 行号 29: |
行号 36: | 行号 31: |
/*written by 洪峰 but wa now*/ #include<iostream> #include<vector> #include<string> using namespace std; int main() { char com[26]; int i,j,k,n; string s; vector<int> res(26,0),data(26,0); for (i=0;i<26;i++) com[i]=65+i; cin>>n; for (i=0;i<n;i++) { if (n<1||n>100) exit(0); cin>>s; for (j=0;j<s.length();j++) for (k=0;k<26;k++) if (s[j]==com[k]) res[k]++; for (j=0;j<26;j++) if (res[j]==1) cout<<com[j]; else if (res[j]==0) continue; else cout<<res[j]<<com[j]; if (i+1<n) cout<<endl; s.clear(); res=data; } system("pause"); return 0; } |
Encoding
Time limit: 1 Seconds
Memory limit: 32768K
Given a string containing only 'A' - 'Z', we could encode it using the following method:
- Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string.
- If the length of the sub-string is 1, '1' should be ignored.
1. Input
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 100.
2. Output
For each test case, output the encoded string in a line.
3. Sample Input
2 ABC ABBCCC
4. Sample Output
ABC A2B3C
http://acm.zju.edu.cn/show_problem.php?pid=2478
/*written by 洪峰 but wa now*/
#include<iostream> #include<vector> #include<string> using namespace std;
int main() {
- char com[26]; int i,j,k,n; string s;
vector<int> res(26,0),data(26,0); for (i=0;i<26;i++)
- com[i]=65+i;
cin>>n; for (i=0;i<n;i++) {
if (n<1||n>100)
- exit(0);
cin>>s; for (j=0;j<s.length();j++)
for (k=0;k<26;k++)
- if (s[j]==com[k])
- res[k]++;
- if (s[j]==com[k])
for (j=0;j<26;j++)
- if (res[j]==1)
cout<<com[j];
- continue;
cout<<res[j]<<com[j];
if (i+1<n)
cout<<endl;
}