#https://algospot.com/judge/problem/read/DECUALtestcount=int(input())inputList=[input()foryinrange(testcount*2)]defisNumber(s):try:float(s)returnTrueexceptValueError:returnFalsedefdecrypt(inputstring):size=len(inputstring)returnList=""i=0whilei<size:ifinputstring[i]=='(':end=iwhileinputstring[end+1]!=')':end=end+1#list[i+1:end+1]까지 해야함. end+2의 위치엔 항상 ^가 있으니 바로 3으로 간다. end+3 부터는 숫자일 것이다.times=0j=end+3print(j)**whileisNumber(inputstring[j])andj<size:**j=j+1print(j)timeString=inputstring[end+3:j]length=len(timeString)forxinrange(length):k=int(timeString[x])times=times+k*10**xi=jforkinrange(times):returnList=returnList+returnList[i+1:end+1]else:returnList=returnList+str(inputstring[i])i=i+1returnreturnListfortestinrange(testcount):inputString1=str(inputList[2*test])inputString2=str(inputList[2*test+1])ifdecrypt(inputString1)==decrypt(inputString2):print("YES")else:print("NO")
문제를 풀고 있는 데 while isNumber 부분에서 오류가 있습니다. String index out of range. 근데 제 실력으로는 왜 이 오류가 일어나는지 이해가 안가서요.(j값이 문자열 길이보다 크지는 않을 것 같은데) 오류가 일어나는 부분은 ^기호 이후로 나오는 숫자를 감지해서 기록하기 위한 부분입니다.
imes
문제를 풀고 있는 데 while isNumber 부분에서 오류가 있습니다. String index out of range. 근데 제 실력으로는 왜 이 오류가 일어나는지 이해가 안가서요.(j값이 문자열 길이보다 크지는 않을 것 같은데) 오류가 일어나는 부분은 ^기호 이후로 나오는 숫자를 감지해서 기록하기 위한 부분입니다.
7년 전