Reputation: 87
i am tying to solve the following question on a competitive coding website where i have to convert '->' to '.' only in the code section but not in the comments. https://www.hackerearth.com/problem/algorithm/compiler-version-2/
i have tried to write a solution but everytime i run it it gives me IndexError message. Some help is much appreciated. Below is my solution
import copy
temp_list = []
while True:
string = input()
if string != "":
temp_list.append(string)
string = None
else:
break
for i in range(len(temp_list)):
j = 0
while j <= (len(temp_list[i]) - 2):
if string[i][j] == '-' and string[i][j + 1] == '>':
#print("Hello WOrld")
temp_string = string[i][:j] + '.' + string[i][j + 2:]
string[i] = copy.deepcopy(temp_string)
elif string[i][j] == '/' and string[i][j + 1] == '/':
#print("Break")
break
else:
#print(j)
j += 1
for i in temp_list:
print(i)
Upvotes: 0
Views: 1007
Reputation: 8290
if string
is the same as if string != ""
temp_list
is a list so you can loop over it in a more pythonic way for i in temp_list
string
is a variable of type str
so you cann't index it like this: string[i][j]
(i guess you wanted to use temp_list
in those cases)Something like this below should work:
import copy
temp_list = []
while True:
string = raw_input()
if string:
temp_list.append(string)
string = None
else:
break
for i in temp_list:
j = 0
while j <= (len(temp_list[i]) - 2):
if temp_list[i][j] == '-' and temp_list[i][j + 1] == '>':
#print("Hello WOrld")
temp_string = temp_list[i][:j] + '.' + temp_list[i][j + 2:]
temp_list[i] = copy.deepcopy(temp_string)
elif temp_list[i][j] == '/' and temp_list[i][j + 1] == '/':
#print("Break")
break
else:
#print(j)
j += 1
for i in temp_list:
print(i)
Upvotes: 2