HD ACM C++ 1020 此文为了吐槽并想求大神解惑

    xiaoxiao2023-03-25  4

    Encoding

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40366    Accepted Submission(s): 17923 Problem Description 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.   Input 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.   Output For each test case, output the encoded string in a line.   Sample Input 2 ABC ABBCCC   Sample Output ABC A2B3C   Author ZHANG Zheng   Recommend JGShining   |   We have carefully selected several similar problems for you:   1019  1021  1062  1032  1039   

    这是杭电OJ上的1020题,附上菜鸟级别的自己敲的代码,改了几遍一直WA,也是无语了。目前为止还是没找到原因,故求还在解同一题的各位大神。

    #include<iostream> #define max 10002 using namespace std; int main() { char a[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int t, count[27],len,b; char str[max],str1[10]; cin >> t; while (t--) { cin >> str; len = strlen(str); memset(count, 0, sizeof(int)* 27); for (int i = 0; i < len; i++) { b = str[i] - 'A'; count[b]++; } for (int i = 0; i < 27; i++) { if (count[i]>1) { sprintf(str1, "%d", count[i]); cout << str1 << a[i]; } else if (count[i] == 1) cout << a[i]; } cout << endl; } return 0; } </iostream>

    以下附上的是1020Discuss中大神敲的代码,代码我拿了,求该大神不喷,至少我重新整理了一下,并加了注释,AC代码如下:

    #include<iostream> using namespace std; char c[10005]; int main() { int i, j, k, t, len, cnt; cin >> t; for (i = 0; i < t; i++) { cin >> c; len = strlen(c); k = 0; cnt = 1; for (j = 1; j <= len; j++) { if (c[j] != c[k]) // 相连两字母不同,则开始输出,就像移动卡尺 { if (cnt != 1) cout << cnt; cout << c[k]; k = j; cnt = 1; continue; } cnt++; } cout << endl; } return 0; } </iostream>

    转载请注明原文地址: https://ju.6miu.com/read-1203943.html
    最新回复(0)