Back to Freecodecamp

Challenge 5: Jbelmud Text

curriculum/challenges/english/blocks/daily-coding-challenges-python/681cb1afdab50c87ddb2e516.md

latest1.9 KB
Original Source

--description--

Given a string, return a jumbled version of that string where each word is transformed using the following constraints:

  • The first and last letters of the words remain in place
  • All letters between the first and last letter are sorted alphabetically.
  • The input strings will contain no punctuation, and will be entirely lowercase.

--hints--

jbelmu("hello world") should return "hello wlord".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(jbelmu("hello world"), "hello wlord")`)
}})

jbelmu("i love jumbled text") should return "i love jbelmud text".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(jbelmu("i love jumbled text"), "i love jbelmud text")`)
}})

jbelmu("freecodecamp is my favorite place to learn to code") should return "faccdeeemorp is my faiortve pacle to laern to cdoe".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(jbelmu("freecodecamp is my favorite place to learn to code"), "faccdeeemorp is my faiortve pacle to laern to cdoe")`)
}})

jbelmu("the quick brown fox jumps over the lazy dog") should return "the qciuk borwn fox jmpus oevr the lazy dog".

js
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(jbelmu("the quick brown fox jumps over the lazy dog"), "the qciuk borwn fox jmpus oevr the lazy dog")`)
}})

--seed--

--seed-contents--

py
def jbelmu(text):

    return text

--solutions--

py
def jbelmu(text):
    words = text.split()
    jumbled = []

    for word in words:
        if len(word) <= 3:
            jumbled.append(word)
        else:
            first = word[0]
            last = word[-1]
            middle = ''.join(sorted(word[1:-1]))
            jumbled.append(first + middle + last)
    
    return ' '.join(jumbled)