Consider an array of numeric strings where each string is a positive number with anywhere from to 10^6 digits. Sort the array’s elements in non-decreasing, or ascending order of their integer values and return the sorted array.
Function Description
Complete the bigSorting function in the editor below.
bigSorting has the following parameter(s):
- string unsorted[n]: an unsorted array of integers as strings
Returns
- string[n]: the array sorted in numerical order
Input Format
The first line contains an integer,n, denoting the number of strings in unsorted.
Each of the n subsequent lines contains an integer string unsorted[i].
Constraints
- 1<=n<=2*10^5
- Each string is guaranteed to represent a positive integer without leading zeros.
- The total number of digits across all strings in unsorted is between 1 and 10^6 (inclusive).
Sample Input 0
6
31415926535897932384626433832795
1
3
10
3
5
Sample Output 0
1
3
3
5
10
31415926535897932384626433832795
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
int cmp(const void *p, const void *q)
{
char* s1 = *(char**)p;
char* s2 = *(char**)q;
int s1l=strlen(s1);
int s2l=strlen(s2);
if(s1l>s2l)
return 1;
if(s2l>s1l)
return -1;
int i,flag=0;
for(i=0;i<s1l;i++)
{
if(s1[i]==s2[i])
continue;
else
{
flag=1;
break;
}
}
if(flag)
{
return s1[i]-s2[i];
}
return 0;
}
int main(){
int n,i,tl;
scanf("%d\n",&n);
char* str[n];
char temp[1000001];
for(i=0;i<n;i++)
{
scanf("%s",temp);
tl=strlen(temp);
str[i]=malloc(sizeof(char)*(tl+1));
strcpy(str[i],temp);
}
qsort((void*)str,n,sizeof(str[0]),cmp);
for(i=0;i<n;i++)
printf("%s\n",str[i]);
return 0;
}
Big Sorting HackerRank Solution in C++
#include<iostream>
#include<fstream>
#include<math.h>
#include<algorithm>
#include<string>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#include<sstream>
#include<set>
using namespace std;
#define forn(i,n) for(int i=0;i<(int)(n); i++)
#define forsn(i,s,n) for(int i=(s);i<(int)(n); i++)
#define esta(x,v) (find((v).begin(),(v).end(),(x)) != (v).end())
#define index(x,v) (find((v).begin(),(v).end(),(x)) - (v).begin())
#define debug(x) cout << #x << " = " << x << endl
#define pb push_back
#define mp make_pair
typedef long long tint;
typedef unsigned long long utint;
typedef long double ldouble;
typedef vector<int> vint;
int toNumber (string s)
{
int Number;
if ( ! (istringstream(s) >> Number) ) Number = 0; // el string vacio lo manda al cero
return Number;
}
string toString (int number)
{
ostringstream ostr;
ostr << number;
return ostr.str();
}
int main (){
int n;
cin>>n;
vector< pair<int, string> > v;
forn(i,n){
string s;
cin>>s;
v.pb(mp((int)s.size(), s));
}
sort(v.begin(), v.end());
forn(i, n){
cout<<v[i].second<<endl;
}
}
Big Sorting HackerRank Solution in Java
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
String[] unsorted = new String[n];
for (int unsorted_i = 0; unsorted_i < n; unsorted_i++) {
unsorted[unsorted_i] = in.next();
}
Arrays.sort(unsorted, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
if (o1.length() < o2.length()) {
return -1;
}
if (o1.length() > o2.length()) {
return 1;
}
return o1.compareTo(o2);
}
});
for (String s : unsorted) {
System.out.println(s);
}
}
}
Big Sorting HackerRank Solution in Python
#!/bin/python
import sys
a= []
n = int(raw_input().strip())
unsorted = []
unsorted_i = 0
for unsorted_i in xrange(n):
unsorted_t = str(raw_input().strip())
unsorted.append(unsorted_t)
y=sorted(unsorted,key=int)
for i in range(0,len(y)):
print y[i]
Big Sorting HackerRank Solution in C#
using System;
class Solution
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
string[] a = new string[n];
for (int i = 0; i < n; ++i) a[i] = Console.ReadLine();
Array.Sort(a, (s1, s2) =>
{
int l = s1.Length - s2.Length;
return (l != 0) ? l : string.Compare(s1, s2, StringComparison.OrdinalIgnoreCase);
});
for (int i = 0; i < n; ++i) Console.WriteLine(a[i]);
}
}
Attempt Big Sorting HackerRank Challenge
Link – https://www.hackerrank.com/challenges/big-sorting/
Next HackerRank Challenge Solution
Link – https://exploringbits.com/super-reduced-string-hackerrank-solution/
Aayush Kumar Gupta is the founder and creator of ExploringBits, a website dedicated to providing useful content for people passionate about Engineering and Technology. Aayush has completed his Bachelor of Technology (Computer Science & Engineering) from 2018-2022. From July 2022, Aayush has been working as a full-time Devops Engineer.