使用 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 次查看

开启你的 职业生涯

通过完成课程获得认证

开始
广告