输入1个字符串和m个字符串,判断第1个字符串是否是m个字符串按逆序连接形成的字符串的前缀

从键盘输入1个字符串和m个字符串,判断第1个字符串是否是m个字符串按逆序连接形成的字符串的前缀,即假设字符串1和字符串2的长度分别是k和n(k<=n),如果字符串1中的k个字符和字符串2中的前k个字符相同(字母不区分大小写),则称字符串1是字符串2的前缀
a. 输入和输出示例:

1-7行是从键盘输入的数据,其中第2行是m的值,第8行是输出结果

    i. 是前缀:第3-7行的字符串按逆序连接后得到字符串 "ilovedlutandChina",第1行的字符串 "IloveDLUT"和字符串 "ilovedlutandChina" 的前9个字符相同,输出"Yes"

        

    ii. 不是前缀:第3-7行的字符串按逆序连接后得到字符串 "IloveChinaandDLUT",第1行的字符串 "IloveDLUT"和字符串 "IloveChinaandDLUT" 的前9个字符不同,输出"No"

该回答引用chatgpt:

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main() {
    int m;
    string s1, s2;
    cin >> s1 >> m;
    string s = "";
    for (int i = 0; i < m; i++) {
        cin >> s2;
        transform(s2.begin(), s2.end(), s2.begin(), ::tolower);
        s = s2 + s;
    }
    transform(s1.begin(), s1.end(), s1.begin(), ::tolower);
    if (s1 == s.substr(0, s1.size())) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }
    return 0;
}


输入时首先读入第一个字符串和一个整数m,然后循环读入m个字符串,将它们按逆序连接在一起,存储在一个新的字符串s中。接着将第一个字符串转换为小写,再将s的前缀与第一个字符串比较。如果相同,输出"Yes",否则输出"No"。