1. 程式人生 > >HDOJ 1219 AC Me(有問題!)

HDOJ 1219 AC Me(有問題!)

【思路】:只要不用switch就可以。

【注意】:本題在for迴圈中採用如下方式會TLE

for (i = 0; i < strlen(str); i++)

採用這種則AC。

for (i = 0; str[i] != '\0'; i++)
有知道的朋友麻煩告知一下,萬分感謝!

【TLE程式碼】:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

#define MAX 100000+1

int main()
{
    //freopen("in.txt", "r", stdin);
    char str[MAX];
    while (gets(str))
    {
        int t[26+1];
        int i = 0;
        memset(t, 0, 27*sizeof(int));
        for (i = 0; i < strlen(str); i++)
        {
            if(str[i] >= 'a' && str[i] <='z')
            {
                t[str[i]-'a']++;
            }
        }
        for (i = 0; i < 26; i++)
        {
//            cout << char(i+'a') << ":" << t[i] << endl;
            printf("%c:%d\n", i+'a', t[i]);
        }
//        cout << endl;
        printf("\n");
    }
    return 0;
}
【AC程式碼】:
        for (i = 0; str[i] != '\0'; i++)
        {
            if(str[i] >= 'a' && str[i] <='z')
            {
                t[str[i]-'a']++;
            }
        }