杭电 acm 1020
2014-08-23 10:34
302 查看
多校综合排名前25名的学校请发送邮件到HDUACM@QQ.COM,告知转账信息(支付宝或者卡号) |
EncodingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 26744 Accepted Submission(s): 11806 [align=left]Problem Description[/align] Given a string containing only 'A' - 'Z', we could encode it using the following method: 1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string. 2. If the length of the sub-string is 1, '1' should be ignored. [align=left]Input[/align] 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 10000. [align=left]Output[/align] For each test case, output the encoded string in a line. [align=left]Sample Input[/align] 2ABCABBCCC [align=left]Sample Output[/align] ABCA2B3C |
不过发现杭电审检有一点不严谨,题目说先输入一个数字作为接下来的用例次数,可是我的程序却出现用例次数无限,即循环,与数字无关,虽然与我初衷有些不同,但却能通
过!哈哈,再找时间修改!先贴AC代码!
#include<stdio.h>
#include<string.h>
int main(){
char a,a_1;
int n,i,m,t=1;
while(scanf("%d\n",&n)!=EOF){
for(m=0;m<n;m++){
i=0;
while(1){
a=getchar();
i=i+1;
if(i==1) a_1=a;
if(i>1&&65<=a&&a<=90){
if(a_1==a)
t=t+1;
if(a_1!=a){
if(t==1){
printf("%c",a_1);
a_1=a;
}
if(t!=1){
printf("%d%c",t,a_1);
a_1=a;
t=1;
}
}
}
if(a<65||a>90){
if(t==1){
printf("%c\n",a_1);
break;
}
if(t!=1){
printf("%d%c\n",t,a_1);
break;
}
}
}
}
}
}
相关文章推荐
- 杭电ACM 1020 Encoding
- 杭电acm1020 Encoding
- 杭电acm 1020 Encoding
- 杭电ACM1020 VS 1039
- ACM题目 - 杭电1020 编码
- 杭电ACM 1020 Encoding java解析
- 杭电ACM 2035 人见人爱A^B
- 杭电ACM 2053 Switch Game
- 杭电acm-1040
- 杭电ACM 2021
- 杭电ACM 1001
- 杭电ACM 1000题
- 杭电ACM第1008题——Elevator
- 杭电acm 2104 hide handkerchief
- 杭电 ACM 1008:Elevator
- 杭电ACM--1228 A+B
- 杭电1020 Encoding
- 杭电ACM 1008Elevator
- 杭电ACM第1002题(C语言版)答案——A + B Problem II
- 杭电ACM HDOJ 1039 Easier Done Than Said?