使用 Python 查詢字串中不同整數的數量的程式


假設我們有一個小寫字母數字字串 s。我們需要將每個非數字字元替換為空格,但是現在我們剩下了一些由至少一個空格分隔的整數。我們需要在對 s 執行替換操作後找到不同整數的數量。這裡,如果兩個數字的十進位制表示(不含任何前導零)不同,則認為它們是不同的。

因此,如果輸入類似於 s = "ab12fg012th5er67",則輸出將為 3,因為有一些數字 ["12", "012", "5", "67"],現在 "12" 和 "012" 在字串中不同,但在整數中相同。所以有三個不同的數字。

為了解決這個問題,我們將遵循以下步驟 -

  • nums := 一個新的列表

  • k := 空字串

  • 對於 i 從 0 到 s 的大小,執行

    • 如果 s[i] 的 ASCII 碼 > 47 且 s[i] 的 ASCII 碼 < 58,則

      • k := k 連線 s[i]

    • 否則,

      • 如果 k 不是空字串,則

        • 在 nums 的末尾插入 k 的整數形式

        • k := 空字串

  • 如果 k 不是空字串,則

    • 在 nums 的末尾插入 k 的整數形式

  • 返回 nums 中不同元素的數量

讓我們看看以下實現,以便更好地理解 -

示例

 現場演示

def solve(s):
   nums = []
   k = ""
   for i in range(len(s)):
      if ord(s[i]) > 47 and ord(s[i]) < 58:
         k += s[i]
      else:
         if(k != ""):
            nums.append(int(k))
            k = ""
   if(k != ""):
      nums.append(int(k))
   return len(set(nums))
s = "ab12fg012th5er67"
print(solve(s))

輸入

"ab12fg012th5er67"

輸出

3

更新於: 2021-05-29

308 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.