People who have given an interview test maybe familiar with the "substring" question. The question is, as follows:
"For string find the largest substring from the right that has at most two different characters.
I have written a small code to achieve this:
def generate_substring(givenstring):
givenstring_list = []
for i in range(0, len(givenstring)):
for j in range(0, len(givenstring)):
if i != j:
givenstring_list.append(givenstring[i:j])
return_list = [givenstring_list[i] for i in range(0,len(givenstring_list)) if givenstring_list[i] != '']
return reversed(return_list)
def main():
code_input = raw_input("Enter a string: ")
substrings_list = generate_substring(code_input)
temp = ""
for substrings in substrings_list:
for i in range(1, len(substrings)):
if substrings[i - 1] != substrings[i]:
temp = substrings
break #Notice This!
print(temp)
main()
Notice the for
loop with a break
. I don't know why is this, but break
cannot manage to break out of the loop. Therefore I get the leftmost substring instead. Why is that?