检查递归中的2个字符

时间:2015-10-08 08:59:59

标签: python recursion

我想检查这个“a”和“b”是否在userInput中。 例如:用户输入“hello”,它会说它不是ab字。 例如:如果用户输入“bag”,则会说它是ab字。 例如:如果用户输入“年龄”,则会说它不是ab字(因为缺少b)。

我尝试了很多方法,包括使用计数器计算字母表在字符串中的时间。 如果“a”和“b”在字符串内部,它将打印“内部”,否则如果其中任何一个不在内部或两者都没有内部,它将打印“不在内部”

请帮助我。我已经尝试过但似乎无法正常工作。

def tryword(x):        
    if x == '':
        return 0
    lastNum= x[-1]
    if (lastNum == "a" and "b"):
        return tryword(x[:-1]) + 1
    else:
        return tryword(x[:-1]) + 0

if recursiveWord >= 0: 
    print "inside"
else:
    print" not inside"

print tryword("abcdef")

1 个答案:

答案 0 :(得分:0)

检查你的病情

if (lastNum == "a" and "b"):

你的意思可能是

if (lastNum == "a" or lastNum == "b"):

但这也行不通。你可以使用魔术数字。

def tryword(x):        
    if x == '':
        return 0
    lastNum= x[-1]
    if (lastNum == "a"):
        return tryword(x[:-1]) | 1
    if (lastNum == "b"):
        return tryword(x[:-1]) | 2
    return tryword(x[:-1])

 assert tryword("qwer") == 0
 assert tryword("a") == 1
 assert tryword("b") == 2
 assert tryword("bb") == 2
 assert tryword("ab") == 3
 assert tryword("abababab") == 3

 def check_inside(s):
      if tryword(s) == 3:
           print "inside"
      else:
           print "not inside"