-1

我需要在不使用 Python 中的内置函数的情况下创建 endswith() 函数。我想知道是否有任何方法可以让我做得更短更容易?我敢肯定,我的方式真的很复杂。

string = "example for endswith"

find = "endswith"

l = len(find)

final = False

b = 0
tstring =[]
new = "" 
for i in string:
    if find[b] == i:
        tstring.insert(b,i)
        b = b + 1
        if b == l:
            print(tstring)
            break
for x in tstring: 
        new += x

print(new)

if(new==find):
    final = True

print(final)
4

2 回答 2

0
string = "example for endswith"

find = "endswith"

l = len(find)

final = False

print(find[::-1] == string[::-1][:l])
于 2019-03-29T15:34:48.643 回答
0

这个怎么样:

def endswith(a, b):
  for i in range(len(b)):
    if a[-1-i] != b[-1-i]:
      return False
  return True

这是一个递归实现,没有用,仅用于教育目的:

def endswith(a, b):
  return not b or (b[-1] == a[-1] and endswith(a[:-1], b[:-1]))

或者,当然,没有循环:

def endswith(a, b):
  return a[-len(b):] == b

但我认为这不是任务的想法。

于 2019-03-29T15:18:28.613 回答