使用Python查找字符串中不同整数的数量的程序
假设我们有一个小写字母数字字符串s。我们必须用空格替换每个非数字字符,但现在我们剩下一些整数,这些整数至少用一个空格分隔。在对s执行替换操作后,我们必须找到不同整数的数量。如果没有任何前导零的十进制表示不同,则这里两个数字被认为是不同的。
因此,如果输入类似于s="ab12fg012th5er67",那么输出将是3,因为现在很少有数字["12","012","5","67"]现在是"12"和"012"字符串不同但与整数相同。所以有三个不同的数字。
为了解决这个问题,我们将按照以下步骤操作-
nums:=一个新列表
k:=空字符串
对于范围0到s大小的i,请执行
如果k不是空字符串,则
在nums的末尾插入k的整数形式
k:=空字符串
k:=k连接s[i]
如果s[i]的ASCII>47和s[i]的ASCII<58,则
否则,
如果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