ベンノックL1-059
早く寝ボディケアのコード農家を促す毎日自称「ビッグベンV」男、リングベルマイクロブログがあります。ベルを鳴らすためにいくつかの楽しみを追加するには、だけでなく、悪い、いくつかの古代の詩を変更します。バート・変更の方法は次のとおりです。言葉に変更文の終わり、古代の詩は韻「オング」を押して検索するためにオンラインに「ベンをノック。」例えば、有名な唐の詩人李彼は言っている:「Xunzhangzhaiju古い彫刻昆虫アリア時にカーテン吊りヒスイの弓」「ワーム」(チョン)および(ゴング)「ボウが」韻「オング」押され、。この詩がに悪化していたので、「Xunzhangzhaiju古い彫刻昆虫、アリアはカーテンがベンをノックしたとき。」
あなたはに悪い韻文「オング」自動的にプレスにプログラムを書くためにあなたを求めて、詩の言葉の多くを与えている「ベンをノック。」
入力フォーマットは:
入力は、まず、第1行のNに20以下の正の整数を与えられています 次いで、所与のピンイン古代詩のN行は、最後の部分は、期間終了,,コンマで区切られた、2つに分割されています。隣接するワード綴りの間のスペースで区切られています。タイトルはアルファベットの各文字がこれ以上6文字以上、文字の各行の長さの合計が100を超えていないことを保証しないし、少なくとも三つの言葉の詩の最後の部分。
出力フォーマット:
各ラインの詩、それが圧力「オング」韻か否かが判断されます。すなわち、二つの単語の上下端が終わる「オング」です。この圧力は、悪い面のタイトルの変更、出力フォーマットに入力に従って韻、次に出力方法であれば、そうでない場合文をスキップされた出力をスキップ。
サンプル入力:
5
魯迅張ZHAIチュラオスディアオチョン、シャオ越ダンリアンGUAゆうゴング。
CAI BI WO天盛尤勇、銭ジンサンジンフアンFU LAI。
雪Zhui ROU志レン魏栄、ANシャオチェン・ジンシュウ魏ロング。
ズオ祚興陳鳳YE YE、GUI唐華ルーXI PAN洞。
REN西安華羅GUI、YEチュン単経香港。
出力例:
ZHAI張挙ラオスディアオシュンチョン、シャオ越ダン聯橋ベン忠。
スキップ
雪Zhui ROU志栄魏レン、AN橋ベン忠シャオチェンジン。
スキップ
スキップ
アイデア:
文に文字列型、終了が1オングとしてマークされている場合、とき最後、0ではないので、二つのマーカーのf1とf2の定義(f1の前でマークオングコンマ、オング後のF2マーク)という
とき(F1 && F2)の代わりには、韻を交換する「オング」の後に三つの言葉を充電し、そうでない場合はそのまま出力する「スキップ」しません。
完全なコード:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>>n;
getchar(); //把回车字符吞掉
while(n--)
{
string s;
getline(cin,s);
//不能用cin>>s;输入,因为cin遇到空格会中断
int len=s.size();
int f1=0,f2=0; //标记
for(int i=0;i<len;i++)
{
if(s[i]==',')
{
if(s[i-3]=='o' && s[i-2]=='n' && s[i-1]=='g')
{
f1=1;
}
break;
}
}
if(s[len-4]=='o' && s[len-3]=='n' && s[len-2]=='g') //s[len-1]是'.'
{
f2=1;
}
int ans=0; //计数器
int bet; //用来记录下标
for(int i=len-1;i>=0;i--) //到这遍历
{
if(s[i]==' ')
{
ans++;
bet=i; //记录是空格的下标(最后一次记录的是倒数第三个单词前面那个空格的下标)
}
if(ans==3) //最后三个单词
{
break;
}
}
if(f1&&f2)
{
for(int i=0;i<bet;i++)
{
cout<<s[i];
}
cout<<" qiao ben zhong."<<endl; //"qiao ben zhong."前面有一个空格
}
else
{
cout<<"Skipped"<<endl;
}
}
return 0;
}
元の質問へのリンク:
https://pintia.cn/problem-sets/994805046380707840/problems/1111914599412858880