在字符串末尾查找符号对

时间:2017-11-22 21:46:52

标签: python python-3.x

我必须编写一个返回...

的程序
  • -1表示空字符串
  • 0表示单字符串
  • 倒数第二个索引,如果最后两个字符匹配
  • 最后一个索引,如果它们不同

例如:

    "tara" => 3
    "baa" => 1
    "adjsk" => 4
    "sthkk"=> 3
    "a" => 0

似乎我错误地返回了最后一个字符的索引:

def ends_with_pair(s):
    for i in range(len(s)-1):
        if s[i] == s[i+1]:
            return s.index(s[i])
        return s.index(s[-1])

另外,有没有办法让它更紧凑?

1 个答案:

答案 0 :(得分:2)

你的逻辑太复杂了。问题涉及最后两个字符;没有必要循环遍历字符串。

  1. 检查字符串长度;如果它为0,则返回-1。如果是1,则返回0.
  2. 相互检查最后两个字符s[-1] == s[-2]。如果它们相等,则返回len(s)-2;否则返回len(s)-1。
  3. 我相信你可以把它变成代码。