[물 문제] HDOJ 1020

4346 단어 코드
http://acm.hdu.edu.cn/showproblem.php?pid=1020
이 문 제 는 일반적인 매 거 입 니 다. 조리 가 분명 하면 문제 가 없습니다. 다음 과 같은 코드 를 너무 많이 사용 하면 if else 가 시간 을 초과 할 수 있 습 니 다.
#include <stdio.h>
#include <string.h>
int main()
{
    int N,i,n,j;
    char a[1001];
    int count=1;
    while (scanf ("%d",&N)!=EOF)
    {
        for (j=0;j<N;j++){
        scanf ("%s",a);
        n=strlen(a);  
        for (i=1;i<n;i++)
          if (a[i]==a[i-1]){
            count++;
            if (i==n-1)
            printf ("%d%c",count,a[i]);}
          else {
            if (count==1)
            printf ("%c",a[i-1]);
            else
            printf ("%d%c",count,a[i-1]);  
            count=1;
            if (i==n-1)
            printf ("%c",a[i]);
            count=1;}
        printf ("
"
); count=1; } } return 0; }

정확 한 코드
#include <cstdio>
#include <string.h>
int main(){
    int t;
    char str[10001];
    scanf("%d",&t);
    while(t--){
        scanf("%s",str);
        int count=1;
        for(int i=0;i<strlen(str);i++){
            if(str[i]==str[i+1])count++;
            else{
                if(count==1) printf("%c",str[i]);
                else printf("%d%c",count,str[i]);
                count=1;
            }
        }
        printf("
"
); } }

좋은 웹페이지 즐겨찾기