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
1.7 KiB
1.7 KiB
id, title, challengeType, dashedName
| id | title | challengeType | dashedName |
|---|---|---|---|
| 68cae5b538ff798bbd4da006 | Challenge 68: Credit Card Masker | 29 | challenge-68 |
--description--
Given a string of credit card numbers, return a masked version of it using the following constraints:
- The string will contain four sets of four digits (
0-9), with all sets being separated by a single space, or a single hyphen (-). - Replace all numbers, except the last four, with an asterisk (
*). - Leave the remaining characters unchanged.
For example, given "4012-8888-8888-1881" return "****-****-****-1881".
--hints--
mask("4012-8888-8888-1881") should return "****-****-****-1881".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(mask("4012-8888-8888-1881"), "****-****-****-1881")`)
}})
mask("5105 1051 0510 5100") should return "**** **** **** 5100".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(mask("5105 1051 0510 5100"), "**** **** **** 5100")`)
}})
mask("6011 1111 1111 1117") should return "**** **** **** 1117".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(mask("6011 1111 1111 1117"), "**** **** **** 1117")`)
}})
mask("2223-0000-4845-0010") should return "****-****-****-0010".
({test: () => { runPython(`
from unittest import TestCase
TestCase().assertEqual(mask("2223-0000-4845-0010"), "****-****-****-0010")`)
}})
--seed--
--seed-contents--
def mask(card):
return card
--solutions--
def mask(card):
if '-' in card:
split = card.split('-')
return f"****-****-****-{split[3]}"
else:
split = card.split(' ')
return f"**** **** **** {split[3]}"