Skip to content
Programming101
Programmingoneonone

Learn everything about programming

  • Home
  • CS Subjects
    • IoT – Internet of Things
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programming101
Programmingoneonone

Learn everything about programming

HackerRank GinortS problem solution in python

YASH PAL, 31 July 2024

In this GinortS problem, You are given a string S that contains alphanumeric characters only. Your task is to sort the string S in the following manner that All sorted lowercase letters are ahead of uppercase letters. All sorted uppercase letters are ahead of digits. All sorted odd digits are ahead of sorted even digits.

HackerRank GinortS solution in python

Topics we are covering

Toggle
  • Problem solution in Python 2 programming.
  • Problem solution in Python 3 programming.
    • Problem solution in pypy programming.
    • Problem solution in pypy3 programming.

Problem solution in Python 2 programming.

def f(ch):
    res = ord(ch)
    if 65 <= res <= 90:
        res += 100
    elif res <= 57:
        res += 200
        if res % 2 == 0:
            res += 10
    return res

S = raw_input().strip()
print reduce(lambda x,y: x + y, sorted(S, key=f), '')

Problem solution in Python 3 programming.

def f(c):
    code = 0
    if c.isupper():
        code = 10 ** 3
    elif c.isdigit():
        code = 10 ** 6
        if ord(c) % 2 == 0:
            code = 10 ** 9
    return code + ord(c)

print(*sorted(input(), key=lambda c: f(c)), sep='')

Problem solution in pypy programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
from string import ascii_lowercase, ascii_uppercase, ascii_letters 

sortkey = ascii_letters + "1357902468"
print reduce(lambda x,y: x+y, sorted(raw_input(),key=sortkey.index))

Problem solution in pypy3 programming.

# Enter your code here. Read input from STDIN. Print output to STDOUT
s = sorted(input())
lower = list(filter(lambda x: x.islower(),s))
upper = list(filter(lambda x: x.isupper(),s))
odd = list(filter(lambda x: x.isdigit() and int(x)%2 ==1, s))
even = list (filter(lambda x: x.isdigit() and int(x)%2 ==0,s))
print(*(lower + upper+odd+even), sep = "")

coding problems solutions Python Solutions

Post navigation

Previous post
Next post
  • Automating Image Format Conversion with Python: A Complete Guide
  • HackerRank Separate the Numbers solution
  • How AI Is Revolutionizing Personalized Learning in Schools
  • GTA 5 is the Game of the Year for 2024 and 2025
  • Hackerrank Day 5 loops 30 days of code solution
How to download udemy paid courses for free

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes