Big Sorting HackerRank Solution in C, C++, Java, Python

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/

0 thoughts on “Big Sorting HackerRank Solution in C, C++, Java, Python”

  1. This website features a large selection of medications for online purchase.
    You can conveniently order essential medicines without leaving home.
    Our catalog includes standard drugs and more specific prescriptions.
    Everything is sourced from verified distributors.
    https://images.app.goo.gl/ui2FBcg9HHfMB4sc9
    We prioritize discreet service, with data protection and prompt delivery.
    Whether you’re managing a chronic condition, you’ll find what you need here.
    Start your order today and experience trusted support.

    Reply

Leave a Comment