1. 程式人生 > >【 OJ 】 HDOJ1020 18年10月31日18:05 [ 19 ]

【 OJ 】 HDOJ1020 18年10月31日18:05 [ 19 ]

ummm,一開始一直RE ,莫名其妙,後來發現他給的字串檢查長度在10000,我定義的只有1000

ummm,下面是修改後的AC程式碼

# include<iostream>
# include<string>
using namespace std;
char str[10002];
int main(void) {
	int N, index, lenght, count;
	char a;
	cin >> N;
	while (N--) {
		cin >> str;
		a = str[0];//拿到第一字元
		count = 1;//初始化 1個 第一個字元
		lenght = strlen(str);
		if (lenght == 1)
			cout << a << endl;
		else {
			for (index = 1; index < lenght+1; ++index) {// * 此處訪問 \0 要不然最後一個字串輸出不出來
				if (str[index] == a) {//一樣個數加1
					count++;
				}
				else {//不一樣
					if (count == 1) //前面的數和後面的數不一樣,並且前面的數字只有1個
						cout << a;
					else //前面的數和後面的數不一樣,並且前面的數字有多個
						cout << count << a;
					a = str[index];//拿到當前字元
					count = 1;//count 初始化1個
				}
			}//for
			cout << endl;
		}
	}
	system("pause");
	return 0;
}