尝试按字母顺序对两个组合字符串进行排序而不重复
Trying to sort two combined strings alphabetically without duplicates
挑战:取 2 个字符串 s1 和 s2,仅包含从 a 到 z 的字母。 Return 一个新的排序字符串,尽可能长,包含不同的字母 - 每个字母只取一次 - 来自 s1 或 s2。
# Examples
a = "xyaabbbccccdefww"
b = "xxxxyyyyabklmopq"
assert longest(a, b) == "abcdefklmopqwxy"
a = "abcdefghijklmnopqrstuvwxyz"
assert longest(a, a) == "abcdefghijklmnopqrstuvwxyz"
所以我才刚刚开始学习,但到目前为止我有这个:
def longest(a1, a2):
for letter in max(a1, a2):
return ''.join(sorted(a1+a2))
其中 returns 所有字母,但我正在尝试过滤掉重复项。
这是我第一次出现堆栈溢出,所以请原谅我做错了什么。我正在努力弄清楚这一切。
我也不知道如何在代码部分缩进,如果有人能帮忙的话。
这里有两种选择。第一个是你想要的答案,第二个是替代方法
要过滤掉重复项,您可以制作一个空白字符串,然后遍历返回的字符串。对于每个字符,如果该字符已经在字符串中,则移至下一个,否则添加它
out = ""
for i in returned_string:
if i not in out:
out += i
return out
This would be empedded inside a function
您的第二个选择是使用 Python 集。对于您想做的事情,您可以将它们视为其中没有重复元素的列表。您可以将函数简化为
def longest(a: str, b: str):
return "".join(set(a).union(set(b)))
这从 a
中的所有字符组成一个集合,然后是 b
中所有字符的另一个集合。然后它将它们“连接”在一起(并集),您会得到另一组。您可以在最后一组中将所有字符连接在一起以获得您的字符串。希望这有帮助
挑战:取 2 个字符串 s1 和 s2,仅包含从 a 到 z 的字母。 Return 一个新的排序字符串,尽可能长,包含不同的字母 - 每个字母只取一次 - 来自 s1 或 s2。
# Examples
a = "xyaabbbccccdefww"
b = "xxxxyyyyabklmopq"
assert longest(a, b) == "abcdefklmopqwxy"
a = "abcdefghijklmnopqrstuvwxyz"
assert longest(a, a) == "abcdefghijklmnopqrstuvwxyz"
所以我才刚刚开始学习,但到目前为止我有这个:
def longest(a1, a2):
for letter in max(a1, a2):
return ''.join(sorted(a1+a2))
其中 returns 所有字母,但我正在尝试过滤掉重复项。
这是我第一次出现堆栈溢出,所以请原谅我做错了什么。我正在努力弄清楚这一切。
我也不知道如何在代码部分缩进,如果有人能帮忙的话。
这里有两种选择。第一个是你想要的答案,第二个是替代方法
要过滤掉重复项,您可以制作一个空白字符串,然后遍历返回的字符串。对于每个字符,如果该字符已经在字符串中,则移至下一个,否则添加它
out = ""
for i in returned_string:
if i not in out:
out += i
return out
This would be empedded inside a function
您的第二个选择是使用 Python 集。对于您想做的事情,您可以将它们视为其中没有重复元素的列表。您可以将函数简化为
def longest(a: str, b: str):
return "".join(set(a).union(set(b)))
这从 a
中的所有字符组成一个集合,然后是 b
中所有字符的另一个集合。然后它将它们“连接”在一起(并集),您会得到另一组。您可以在最后一组中将所有字符连接在一起以获得您的字符串。希望这有帮助