使用Python编写的查找字符串中不同整数数目的程序
假设我们有一个小写字母数字字符串s。我们需要将每个非数字字符替换为一个空格,但现在我们留下了一些由至少一个空格分隔的整数。在对s执行替换操作后,我们必须找到不同整数的数量。在这里,如果它们的十进制表示没有前导零,则认为两个数不同。
因此,如果输入是s=”ab12fg012th5er67″,则输出将是3,因为有几个数字[“12″,”012″,”5″,”67”],现在”12″和”012″在字符串中不同但在整数中相同。因此有三个不同的数字。
要解决此问题,我们将执行以下步骤 −
- nums:一个新列表
-
k:空字符串
-
对于i从0到s的大小,执行以下操作
- 如果s [i]的ASCII码大于47并且小于58,则
- k:用s [i]连接k
- 否则,
- 如果k不是空字符串,则
-
在nums的末尾插入整数形式的k
-
k:空字符串
- 如果s [i]的ASCII码大于47并且小于58,则
-
如果k不是空字符串,则
- 在nums的末尾插入整数形式的k
- 返回nums中不同元素的计数
让我们看以下实现以更好的理解−
更多Python相关文章,请阅读:Python 教程
示例
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