按要求拼接字符串,因为都是正整数,所以先比较字符串的位数,位数不同就直接决定了大小;位数相同再按字典序直接比较大小
#include <iostream> #include <string> using namespace std; int main() { string x1, x2; int k1, k2; while (cin >> x1 >> k1 >> x2 >> k2) { string str1, str2; for (int i = 0; i < k1; i++) { str1 += x1; } for (int i = 0; i < k2; i++) { str2 += x2; } if (str1.size() > str2.size()) { // 先比较字符串的位数 cout << "Greater" << endl; } else if (str1.size() < str2.size()) { cout << "Less" << endl; } else if (str1 > str2) { // 位数相同再按字典序直接比较大小 cout << "Greater" << endl; } else if (str1 < str2) { cout << "Less" << endl; } else { cout << "Equal" << endl; } } return 0; }
时间复杂度:O(k1+k2),用于生成拼接的字符串,其中k1,k2是给定的拼接次数
空间复杂度:O(k1+k2),用于存储拼接的字符串,其中k1,k2是给定的拼接次数