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