#49191: 問:這樣為什麼不行?


hsiaowilson990822@gmail.com (蕭丞崴)

學校 : 不指定學校
編號 : 311712
來源 : [218.164.27.59]
最後登入時間 :
2025-08-11 03:06:30

import re
while True:
    try:
        import string
        sString = input().lower()
        lString = re.findall(r"a-z", sString)
        lString = list("".join(lString))
        lTime = []
        while (len(lString) != 0):
            sTry = lString[0]
            iTime = lString.count(sTry)
            lTime.append(iTime)
            for i in range(iTime):
                lString.remove(sTry)
        ans = 0
        for i in range(len(lTime)):
            if int(i)%2 != 0:
                ans += 1
        if ans > 1:
            print("no...")
        else:
            print("yes !")
    except:
        break
這個寫法同樣的測資我在vscode上跑是對的,在這裡跑就出問題了。Why?
#49193: Re: 問:這樣為什麼不行?


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-09-21 22:24:46

有問題的地方有點多

 

import re

while True:
    try:
       # 沒有用到的東西 import 進來幹嘛?
      import string

        sString = input().lower()

      # 正則表達式有問題
      # 應寫成 r"[a-z]"
      # "a-z" 意思是只匹配 "a-z" 這個字串,而非所有小寫英文字母
        lString = re.findall(r"[a-z]", sString)

      # 多此一舉,re.findall 回傳的本來就是 list[str] 的格式
        lString = list("".join(lString))

      lTime = []
      while len(lString) != 0:
          sTry = lString[0]
          iTime = lString.count(sTry)
          lTime.append(iTime)
          for i in range(iTime):
                lString.remove(sTry)

      ans = 0
        for i in range(len(lTime)):

          # 計算邏輯有誤?
          # 我想你應該是要計算每個字母的總數是否是奇數
          # 但你計算的是 index 位置......
          if int(i) % 2 != 0:
                ans += 1

      if ans > 1:
          print("no...")
      else:
            print("yes !")

  # 其實比較建議寫成 except EOFError
  except:
        break