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
TABLE OF CONTENTS
Big Sorting HackerRank Solution in C
#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.