UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)

767 ワード

テーマ:
指定された文字列には、「[',']」という2つの記号、「文字列ヘッダを返す」という文字列の末尾が表示されます.
原串を求める.
問題の構想を解く:この問題は2つの配列で解決することができる.文字列によって与えられた順序で、[後ろの文字をホーム配列に保存]後ろの文字をend配列に保存します.
#include <cstdio>
char S[100010], L[100010], R[100010];

int main() {
	while (gets(S)) {
		int cur = 100005, cnt = 0;
		for (int i = 0; S[i]; ) {
			if (S[i] == '[') {
				int tmp = i;
				i++;
				while (S[i] != ']' && S[i] != '[' && S[i])
					i++;
				for (int j = i - 1; j > tmp; j--)
					L[--cur] = S[j];
				continue;
			}
			if (S[i] && S[i] != ']' && S[i] != '[')
				R[cnt++] = S[i];
			i++;
		}
		R[cnt] = 0;

		printf("%s%s
", L + cur, R); } return 0; }