第二题这么做貌似可以应对各种情况,比如说【‘aa’, 'bb',...】
import numpy as np def loop(strings):
alphas = np.zeros(58, dtype=int)
alphaApper = np.zeros(58, dtype=int)
chara = ord('a') for string in strings: if string != '':
head = ord(string[0])
tail = ord(string[-1]) if head == tail: if alphaApper[head - chara] == 0:
alphaApper[head - chara] = 26 else:
if alphas[head - chara] > 0:
alphas[head - chara] -= 1 else:
alphas[head - chara] = 1 if alphaApper[head - chara] == 26 or alphaApper[head - chara] == 0: alphaApper[head - chara] = -1 if alphas[tail - chara] > 0:
alphas[tail - chara] -= 1 else:
alphas[tail - chara] = 1 if alphaApper[tail - chara] == 26 or alphaApper[tail - chara] == 0: alphaApper[tail - chara] = -1 if np.sum(alphas) == 0 and np.sum(alphaApper) <= 0: return True return False if __name__ == "__main__":
strings = ['aa', 'ab', 'ba', 'bb', 'aa', ''] print(loop(strings))