这道题怎么改?
轩轩有一个字符串s,最开始s是空串。
轩轩会进行n个操作,每个操作会给两个字符串a和b。如果s接上a以后,会以串b作为结尾,那么轩轩就把串a接在s的后面。否则不对s进行任何修改。
轩轩希望知道串s最后是什么样。因为不喜欢小写字母,轩轩希望把所有的小写字母转化成大写字母以后输出。
轩轩写了下面这个程序,但发现无法正确地完成任务。
样例:
5
Igj Igj
AwH IgjAwH
dMUn wHdMUn
hznj Unhznj
q dmxIRMuUY
输出
IGJAWHDMUNHZNJ
#include <string>
#include <iostream>
using std::cin;
using std::cout;
using std::string;
int n;
string s;
int main(){
cin >> n;
for(int i = 1; i <= n; i++){
string a, b;
cin >> a >> b;
string t = s + a;
if(t.length() < b.length())
continue;
if(t.substr(t.length() - b.length(), b.length()) == b)
s = t;
}
for(int i = 0; i <= s.length()-1; i++)
if('a' <= s[i] && s[i] <= 'z')
s[i] = s[i] + 'A' - 'a';
cout << s << '\n';
return 0;
}