Skip to content

Return Short Long Short in Python

The challenge

Given 2 strings, a and b, return a string of the form short+long+short, with the shorter string on the outside and the longer string on the inside. The strings will not be the same length, but they may be empty ( length  ).

For example:

solution("1", "22") # returns "1221" solution("22", "1") # returns "1221"
Code language: Python (python)

The solution in Python code

Option 1:

def solution(a, b): if a.isdigit(): if a<b: return f"{a}{b}{a}" else: return f"{b}{a}{b}" else: if len(a)<len(b): return f"{a}{b}{a}" else: return f"{b}{a}{b}"
Code language: Python (python)

Option 2:

def solution(a, b): return a+b+a if len(a)<len(b) else b+a+b
Code language: Python (python)

Option 3:

def solution(a, b): return '{0}{1}{0}'.format(*sorted((a, b), key=len))
Code language: Python (python)

Test cases to validate our solution

import test from solution import solution @test.describe("Fixed Tests") def fixed_tests():'Basic Test Cases') def basic_test_cases(): test.assert_equals(solution('45', '1'), '1451') test.assert_equals(solution('13', '200'), '1320013') test.assert_equals(solution('Soon', 'Me'), 'MeSoonMe') test.assert_equals(solution('U', 'False'), 'UFalseU')
Code language: Python (python)

See also  How to List all Files/Folders/Directories in Python
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x