Имам затруднение със задача Next Happy Year fundamentals python!
Някой ,може ли да ми помогне мъча се ,но нищо не мога да направя видях едно решение със сетове и дължина на стринг аз още не съм ги учил тези неща и се притесних.
Някой ,може ли да ми помогне мъча се ,но нищо не мога да направя видях едно решение със сетове и дължина на стринг аз още не съм ги учил тези неща и се притесних.
Предполагам, че решението, което сте видели е нещо подобно на това?
year = int(input()) + 1
while len(set(str(year))) != len(str(year)):
year += 1
print(year)
Използват се само стандартни функционалности на езика и затова е толкова кратко.
Дори и да напишем собствена логика, тя най-вероятно ще се върти около същото принципно решение:
Най-сложната част е проверката за уникалност на цифрите в годината - разделяме годината на съставящите я цифри и сравняваме всяка с всяка дали са различни - доста код с възможности за допускане на логическа или copy-paste грешка.
Точно този проблем ни решава вариантът с използване на set.- "unordered collection of unique elements":
Благодаря! Знаех за setа, че прави това, но въобще не се сетих.Току що завърших фундаменталс. Трудна ми беше тази задача и се притесних, пробвах с едни вложени цикли. Имаше едно решение подобно в форума, като го видях чак тогава ми светна и работеше с 60 от 100 в джъждж, за секунда го направих 100 от 100, но преди това въобще не ми дойде на акъла попринцип не съм ги учил още сетове, листове, речници от обща култура ги знам и сам съм си ги разцъквал.Благодаря, за бързият отговор!
Здравейте,
извинявайте, знам, че темата малко е остаряла, но можете ли да обясните, как става сравнението
while len(set(str(year))) != len(str(year)):
Странното за мен е, че set-ът съдържа няколко елемента и то по-точно 2, след като стане филтрирането по уникални елементи, а пък str(year) има 4. Как правим сравнение между двете, за колко цикъла и как точно? При дебъгването виждам, че се правят 19 стъпки , ако инпута ми е 2022, Done running (19 steps) В никоя от тях обаче не виждам да се променя сетът..., моля да поясните. Благодаря предварително.