2 solutions
-
0
#include<bits/stdc++.h> using namespace std; char a[1000000]; char b[1000000]; int main(){ int n; cin>>n; if(n==0){ printf("")//麻了,这一步卡了。 } else{ cin>>a; int num=1; int j=0; for(int i=0;i<strlen(a);i++){ if(a[i]==a[i+1]){ num++; } else{ b[j]=num+'0'; b[j+1]=a[i]; j=j+2; num=1; } } printf("%d\n",strlen(b)); puts(b); } return 0; }
-
0
这个题是一个字符串问题。对字符串处理对于新手来说也是不容易的,过的人还不少,大家还是挺不错的。为了降低难度,提前给出了字符串的长度,保证数字只占一位。相信大家经过练习,以后做这个题就会变得得心应手了~
update:2021/12:由@keptree 增加了一组数据,需要考虑n为0的情况的输出,应该是一个空串!
参考代码:
#include<stdio.h> #include<string.h> int main() { char a[120],s[120]; int l1,i,j=0; scanf("%d\n",&l1); if (n==0) { printf(""); return 0; } gets(a); for (i=0;i<strlen(a);i++) { int ii=1; while (a[i]==a[i+ii]) { ii++; } s[j]=ii+48; j++; s[j]=a[i]; j++; i=i+ii-1; } printf("%d\n",strlen(s)); puts(s); return 0; }
- 1
Information
- ID
- 131
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- # Submissions
- 172
- Accepted
- 13
- Uploaded By