+ 1

Pig Latin Error

I am enable to understand what's the difference between: a = input().lower() x = a.split() z = [] for i in x: y = i[0] i = i.replace(i[0], "") z.append(i+y+"ay") z = ' '.join(map(str,z)) print(z) And sentence = input() new_sentence = "" for word in sentence.split(): new_word = word[1:] + word[0] + "ay " new_sentence = new_sentence + new_word print(new_sentence) Code. for pig Latin. The Sololearn is giving error to the 1st code in 3rd and 5th hidden test cases. But in second code Sololearn isn't giving any error. What's the problem??

26th Jan 2024, 8:34 AM
Prathmesh Angad Phad
Prathmesh Angad Phad - avatar
4 Answers
+ 5
Hi, Prathmesh Angad Phad ! Using replace can change the word in an unexpected way, if the character is included multiple times in the word. Try using slices to modify the word instead.
26th Jan 2024, 10:34 AM
Per Bratthammar
Per Bratthammar - avatar
+ 1
There is no user able to view the hidden case, so we cannot justify. There maybe some edge cases in 3rd and 5th test case. Maybe you can send a bug report to SoloLearn? Actually, I think the second code wouldn't pass any test case because there is a tailing space at the end.
26th Jan 2024, 10:16 AM
Wong Hei Ming
Wong Hei Ming - avatar
+ 1
Per Bratthammar I forgot about that. Maybe adding the 3rd argument will work.
26th Jan 2024, 10:37 AM
Wong Hei Ming
Wong Hei Ming - avatar
+ 1
Prathmesh Angad Phad , Just a side note, you never need to convert the return value of input() to str, because input() returns str.
26th Jan 2024, 7:21 PM
Rain
Rain - avatar