http://acm.hdu.edu.cn/showproblem.php?pid=1982
这题真是够纠结的啊,开始是pe但找不出神马原因,后来看了别人的代码,发现我没考虑"-----######---##-#-#"
这种情况,导致我的pe,应该输出10个空格才对。
代码如下:
#include"stdio.h" char word[28]={"0ABCDEFGHIJKLMNOPQRSTUVWXYZ"}; char a[10005]; void output() { int i,s=0,state=0; for(i=0;a[i]!='\0';i++) { if(a[i]!='-'&&a[i]!='#') { state=1; s=s*10+a[i]-'0'; if(a[i+1]=='\0') printf("%c",word[s]); } else if(state==1&&(a[i]=='-'||a[i]=='#')) { printf("%c",word[s]); state=s=0; if(a[i]=='#') printf(" "); } else if(a[i]=='#') printf(" "); } } int main( ) { int t; scanf("%d",&t); while(t--) { scanf("%s",a); output(); printf("\n"); } return 0; }