정수에서 읽으려면이 특정 상황에서 느린 결과를 제공 IO 대신빠른 fastly 내가 사용하고
cases = int(next(sys.stdin))
느린
cases = int(sys.stdin.readline())
내가 사용하는 모든 문제에 더 나은 타이밍을 받고있다 그러나 this SPOJ problem과 the same codechef problem의 경우에는 첫 번째 대신 두 번째를 사용하면 더 나은 결과를 얻었습니다. 왜 이런 일이 일어 났는지 전혀 모르겠습니다.
두 번째 방법이이 특정 문제에 대한 첫 번째 방법과 비교하여 갑자기 빨라 졌던 이유는 무엇입니까? 여기
는 Timing results of SPOJ 및 timing results of codechef 내가 사용하는 2 전체 코드는import sys
from itertools import islice
def p():
cases = int(next(sys.stdin))
string = [i[:len(i) -1] for i in islice(sys.stdin, cases)]
for i in string:
ops, ans = [], []
for c in i:
if c in ['+', '-', '*', '/', '^']:
ops.append(c)
elif c == ')':
ans.append(ops.pop())
elif c == '(':
pass
else:
ans.append(c)
print ''.join(ans)
p()
하고 당신은 SPOJ 데이터가 충분하지 않습니다
import sys
from itertools import islice
def p():
cases = int(sys.stdin.readline())
string = [i[:len(i) -1] for i in islice(sys.stdin, cases)]
for i in string:
ops, ans = [], []
for c in i:
if c in ['+', '-', '*', '/', '^']:
ops.append(c)
elif c == ')':
ans.append(ops.pop())
elif c == '(':
pass
else:
ans.append(c)
print ''.join(ans)
p()
http://codereview.stackexchange.com을 시도해보십시오. 질문은 오프 주제입니다. 그리고'timeit' 모듈을 사용하여 프로그램의 타이밍을 점검하십시오. –
@AshwiniChaudhary 입력을 읽는 첫 번째 방법은 ** 빠릅니다. 나는 온라인 심사 위원들에게 많은 문제들을 조사했다. 이 모순을주는 것을 간과하고있는이 문제의 해결책과 특별히 관련이 있습니다. 그러므로 그것은 화제가 아닙니다. 이 질문은 [질문 할 수있는 것] (http : //stackoverflow.com/help/on-topic)에서 명시 적으로 언급 한 '특정 프로그래밍 문제'를 다루기 때문에 –