Files
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

2.0 KiB

id, title, challengeType, dashedName
id title challengeType dashedName
68b1f72371a5ac895ac70a08 Challenge 43: Digits vs Letters 29 challenge-43

--description--

Given a string, return "digits" if the string has more digits than letters, "letters" if it has more letters than digits, and "tie" if it has the same amount of digits and letters.

  • Digits consist of 0-9.
  • Letters consist of a-z in upper or lower case.
  • Ignore any other characters.

--hints--

digits_or_letters("abc123") should return "tie".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("abc123"), "tie")`)
}})

digits_or_letters("a1b2c3d") should return "letters".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("a1b2c3d"), "letters")`)
}})

digits_or_letters("1a2b3c4") should return "digits".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("1a2b3c4"), "digits")`)
}})

digits_or_letters("abc123!@#DEF") should return "letters".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("abc123!@#DEF"), "letters")`)
}})

digits_or_letters("H3110 W0R1D") should return "digits".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("H3110 W0R1D"), "digits")`)
}})

digits_or_letters("P455W0RD") should return "tie".

({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(digits_or_letters("P455W0RD"), "tie")`)
}})

--seed--

--seed-contents--

def digits_or_letters(s):

    return s

--solutions--

def digits_or_letters(s):
    digit_count = 0
    letter_count = 0

    for char in s:
        if char.isdigit():
            digit_count += 1
        elif char.isalpha():
            letter_count += 1

    if digit_count > letter_count:
        return "digits"
    if letter_count > digit_count:
        return "letters"
    return "tie"