UVA - 11988 Broken Keyboard (a.k.a. Beiju Text)
767 ワード
テーマ:
指定された文字列には、「[',']」という2つの記号、「文字列ヘッダを返す」という文字列の末尾が表示されます.
原串を求める.
問題の構想を解く:この問題は2つの配列で解決することができる.文字列によって与えられた順序で、[後ろの文字をホーム配列に保存]後ろの文字をend配列に保存します.
指定された文字列には、「[',']」という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;
}