Reviewed by Aditya Kumar Β· Last reviewed 2026-03-24
**String:** half + half[::-1] (even); half + char + half[::-1] (odd). **Numbers:** n + reverse(n) or n + reverse(n//10). Generate all k-digit: iterate half, mirror. def gen_palindromes(digits): for i in range(10**(digits//2)): s = str(i).zfill(digits//2)...
String: half + half[::-1] (even); half + char + half[::-1] (odd). Numbers: n + reverse(n) or n + reverse(n//10). Generate all k-digit: iterate half, mirror.
def gen_palindromes(digits):
for i in range(10**(digits//2)):
s = str(i).zfill(digits//2)
yield int(s + s[::-1])
if digits%2:
for d in '0123456789': yield int(s + d + s[::-1])
Red Flag: Generating all then filtering. Pro-Move: 'We generate by mirroring halfβO(10^(k/2)) for k-digit palindromes.'
According to DataEngPrep.tech, this is one of the most frequently asked Python/Coding interview questions, reported at 1 company. DataEngPrep.tech maintains an editor-reviewed database of 1,863 data engineering interview questions across 7 categories.