我正在尝试将字符串编码为新字符串,并使用'(',如果字符仅出现一次(在原始字符串中),而')'则字符出现多次(在原始字符串中)。我的问题是当我遍历字符串时,有时重复的字符仅算作1。我肯定走错了路。
我试图做的是使用if else语句进行嵌套的for循环,我将在下面提供我的代码。
def duplicate_encode(word):
replace = [')' if word.count(i) > 1 else '(' for i in word]
strreplace = ''.join(replace)
print(strreplace)
a = input("Insert string here: ")
duplicate_encode(a)
最著名的例子是字符串“ Success”。结果应该是'(())())',而我得到的是'(())())'。我还尝试了另一种方法,并在计算字母时在内部使用打印,并且第一个'S'始终计为1,而最后两个's'计为2。
答案 0 :(得分:2)
如果希望对字符进行不区分大小写的计数,请在循环之前将输入字符串转换为一种大小写。
def duplicate_encode(word):
word = word.lower()
replace = [')' if word.count(i) > 1 else '(' for i in word]
strreplace = ''.join(replace)
print(strreplace)