" ==,=,<!> ,是,不是"不使用python字符串

时间:2017-01-12 15:22:04

标签: python

我想检查给定字符串中除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)

3 个答案:

答案 0 :(得分:1)

您可以使用列表解析在一行中执行此操作:

s = input()
print len([x for x in s if x not in 'SOS'])

但是,如果您希望单词中的唯一字母数量不是SO,那么您可以使用:

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")

或者从字符串中替换所有SO并使用长度。

len(s.replace("S", "").replace("O", ""))

答案 2 :(得分:0)

从你的例子中,你计算的字母不等于字母“S”和“O”。

len([i for i in s if not (i == 'S' or i == 'O')])