POJ 1917 Automatic Poetry
問題
"s1<s2>s3<s4>s5" という形式の文字列が与えられる。もう一つ "s..." という形式の文字列が与えられる。元の文字列からカッコを取り除いた文字列と、もう一つの文字列を "ss4s3s2s5" という形式に直したものを出力せよ。
やりかた
Javaであれば正規表現を使えるので楽。といってもC++でも難しいことはない。
以下ソース。
int main(int argc, char **argv){ int N; cin >> N; cin.ignore(); while(N--){ string s, t; getline(cin, s); getline(cin, t); int idx = 0; string a[5]; for(int i = 0; i < s.length(); i++){ if(s[i] == '<' || s[i] == '>') idx++; //カッコが来るごとに文字は分かれる else a[idx] += s[i]; } cout << a[0] << a[1] << a[2] << a[3] << a[4] << endl; for(int i = 0; i < t.length(); i++){ if(t[i] == '.'){ cout << a[3] << a[2] << a[1] << a[4] << endl; break; }else cout << t[i]; } } return 0; }
Get up! 明日のSUPER ST@R!