【发布时间】:2021-09-24 08:46:21
【问题描述】:
#include <iostream>
using namespace std;
int main()
{
string a, b;
int buffer;
cin >> a >> b;
for (int i = 0; i < a.size(); i++)
{
if (a[i] < 92)
{
a[i] += 32;
}
if (b[i] < 92)
{
b[i] += 32;
}
}
if (a < b)
{
cout << -1;
}
else if (a > b)
{
cout << 1;
}
else if (a == b)
{
cout << 0;
}
cin>>buffer;
return 0;
}
已超出内存限制,使用的内存为:262100 KB
期望的输出:如果第一个字符串小于第二个,打印“-1”。如果第二个字符串小于第一个字符串,则打印“1”。如果字符串相等,则打印“0”。请注意,比较字符串时不考虑字母的大小写。
【问题讨论】:
-
输入的最大时长是多少?是否保证第二个字符串总是比第一个字符串长或等长?
-
它可能不会改变任何东西,但你忘了
#include <string> -
还有什么是内存限制?
-
只是从神奇的数字中猜测,但似乎
std::tolower会是更合适的选择。 -
附带说明:根据您的操作系统和编译器,您可能拥有
strcasecmp,因此您只需要cout << strcasecmp(a.c_str(), b.c_str());:linux.die.net/man/3/strcasecmp
标签: c++ memory-limit