✍️ متن قرینه از دو سمت یکسان خوانده میشود؛ مثل level. در این تمرین مقایسه دقیق نویسهها را میخواهیم: بزرگی و کوچکی حرف، فاصله و نشانه همگی اهمیت دارند. بنابراین قرار نیست قبل از بررسی، متن را پاکسازی یا حروفش را تبدیل کنیم. این تصمیم بخشی از قرارداد است، نه یک جزئیات اختیاری.
برای نمونه، در radar اول r با r و بعد a با a برابرند؛ حرف وسط به مقایسه جدا نیاز ندارد. حالا کد زیر را دنبال کن:
text = 'abca'
left, right = 0, len(text) - 1
ok = True
while left < right:
if text[left] != text[right]:
ok = False
break
left += 1
right -= 1
print(ok)
دو حرف بیرونی برابرند، ولی لازم است همه زوجهای روبهرو بررسی شوند. اولین برابری به معنی موفقیت نهایی نیست؛ اولین نابرابری برای شکست کافی است. خطای رایج، تمام کردن بررسی بعد از همان جفت اول است. به جای حدس زدن از شکل واژه، مقدار دقیق left و right را پس از اولین دور روی کاغذ بنویس و جفت دوم را ببین.
فعالیت شما
خروجی بولی کد را برای text='abca' انتخاب کن؛ مقایسه نویسهها دقیق است و همه زوجهای روبهرو باید برابر باشند.