我正在尝试解决一个非常简单的编码问题:
考虑一个数字字符串数组,其中每个字符串都是一个正数,范围从1到10 ^ 6位数。对数组元素按其整数值的降序或升序排序,然后在新行上打印排序后的数组的每个元素。
第一行包含一个整数n,该整数n表示字符串的数目。n行中的每一行都包含一个INTEGER STRING。
我的代码是:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i; string s;
cin >> i;
int j = i;
string arr[i];
int cntr = 0;
while (i--){
cin >> s;
arr[cntr] = s;
cntr++;
}
sort(arr, arr+j);
for (auto c: arr)
cout << c << endl;
}
Run Code Online (Sandbox Code Playgroud)
输入是
6
31415926535897932384626433832795
1
3
10
3
5
Run Code Online (Sandbox Code Playgroud)
我的输出结果是:
1
10
3
3
31415926535897932384626433832795
5
Run Code Online (Sandbox Code Playgroud)
如果我创建一个数组并手动向其添加整数字符串,则上述代码可以正常工作。那么,为什么从网站输入信息却会产生错误的结果呢?
PS:这是问题的链接:https : //www.hackerrank.com/challenges/big-sorting/problem