【发布时间】:2021-04-25 04:01:36
【问题描述】:
我的任务是创建一个函数,该函数在字符串中查找唯一字符,然后将其值加到 10。对于这种特定情况,dice_str 的 len 始终为 3,并且始终存在唯一的该字符串内的字符。到目前为止,这是我的代码:
def get_point_score(dice_str):
unique = ""
i = 0
while len(unique) != 1:
if dice_str[i] not in dice_str[i+1:]:
unique += dice_str[i]
sum = 10 + int(unique)
else:
i += 1
unique += unique
return sum
预期输出:
dice_str = "141"
value = 14
Got:
value = 11
我们被要求使用 while 循环、索引和 find() 来解决这个问题。
我正在考虑遍历字符串中的每个元素并使用索引来查看它是否重复,以及是否重复将 i 增加 1 并继续检查直到不再是这种情况。从输出看来我未能正确实现这一点,所以我正在考虑使用 find() 并且一旦 find() 返回 -1,将元素添加到空字符串,但我也不确定如何实现正确的。任何帮助将不胜感激
【问题讨论】:
-
它为我输出正确的值。
-
我也是这么想的。它适用于“141”,但通常不正确。
-
我没有得到这个语句,“将其值加到 10” -> 将 10 加到每个唯一值或最后?
-
@HenryEcker 啊,你是对的。有一些极端情况,比如没有唯一元素或者唯一元素是最后一个怎么办?
-
另外,我看到每次
sum被一个新值覆盖,这是预期的吗?
标签: python