使用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