我想检查给定字符串中除SOS以外的字母
输入: - SOSSOTSAR
输出: - 3 (T,A,R)
s = input()
c=0
s=s.replace('SOS','')
for i in range(len(s)):
if(s[i] != "S"):
c+=1
elif(s[i+1] != "O"):
c+=1
elif(s[i+2] != "S"):
c+=1
i+=3
print(c/3)
答案 0 :(得分:1)
您可以使用列表解析在一行中执行此操作:
s = input()
print len([x for x in s if x not in 'SOS'])
但是,如果您希望单词中的唯一字母数量不是S
或O
,那么您可以使用:
s = input()
print len(set([x for x in s if x not in 'SOS']))
e.g。如果你的单词是SOSOTTAR
,第一种方法会给出4(T,T,A,R),而第二种方法会得到3(T,A,R)。
答案 1 :(得分:0)
您可以像这样计算输入s
中的每个字母。
sum(1 for c in s if c not in "SO")
或者从字符串中替换所有S
和O
并使用长度。
len(s.replace("S", "").replace("O", ""))
答案 2 :(得分:0)
从你的例子中,你计算的字母不等于字母“S”和“O”。
len([i for i in s if not (i == 'S' or i == 'O')])