2017-09-23 147 views
0

我正在解決一個印度黑客在python中的問題,但其中一個測試用例失敗了。但是當我在C++中使用相同的邏輯解決問題時,所有的測試用例都通過了。python解決方案的一個測試用例失敗。如何糾正它。?

我想通過這是因爲如果字符串長度很長,python無法獲得完整的字符串作爲輸入。

這裏是problem

這是我在Python

a=input() 
s = set(a) 

dic = {} 

for v in s: 
    dic[v] = a.count(v) 

if((len(a))%2 == 0): 
    ne = set(dic.values()) 
    if len(ne) == 1: 
     print("YES") 
    else: 
     print("NO") 
else: 

    co = 0 
    for ky in dic: 
     if dic[ky]%2 != 0: 
      co = co +1 
    if co==1: 
     print("YES") 
    else: 
     print("NO") 

這裏是輸入測試用例這failed

PS的解決方案:我的算法是正確的。它只是變量a無法獲得完整的字符串作爲輸入。如何得到它?蟒蛇中是否有長字符串..?

+0

'(len(a))%2 == 0'似乎損壞的邏輯。你應該檢查每個值是否均勻。 – Jarod42

回答

0

您是否嘗試過這一點 -

x = sys.stdin.read() 

請注意,你必須輸入SYS使用此。

+0

我也試過,沒有工作。該測試用例中的字符串輸入過長,python無法將整個字符串作爲輸入。 這裏是[鏈接](https://he-s3.s3.amazonaws.com/media/hackathon/indiahacks-code-mania-7/problems/0457281c-a-input-0457222.txt?Signature=bOSO4H5mSXaWxoiB0ELyWQAy79U %3D&Expires = 1506489592&AWSAccessKeyId = AKIAJLE6MUHDYS3HN6YQ)。 – er1shivam