逆序索引第一个字母字符(情况一)后,再逆序索引第一个非字母字符(情况二),然后就可以输出该字符子串了。
在最后的开头时,需要区分是目前索引到情况一还是情况二了,然后再判断输出的情况。
while True: try: str1 = str(input()) k = len(str1) flag1 = 0 flag2 = 0 m = k n = 0 for i in range(k-1, -1, -1): if(i != 0 and flag1 == 0): if(ord(str1[i]) >= 65 and ord(str1[i]) <= 90) or (ord(str1[i]) >= 97 and ord(str1[i]) <= 122): flag1 = 1 m = i if(i != 0 and flag1 == 1): if(ord(str1[i]) < 65 or (ord(str1[i]) > 90 and ord(str1[i]) < 97) or ord(str1[i]) > 122): n = i print(str1[n+1:m+1], end=' ') flag1 = 0 if(i == 0 and flag1 == 1 and ((ord(str1[0]) >= 65 and ord(str1[i]) <= 90) or (ord(str1[i]) >= 97 and ord(str1[i]) <= 122))): print(str1[0:m+1],end = ' ') break elif(i == 0 and flag1 == 1and (ord(str1[i]) < 65 or (ord(str1[i]) > 90 and ord(str1[i]) < 97) or ord(str1[i]) > 122)): print(str1[1:m+1], end = ' ') break elif(i == 0 and flag1 == 0): print(str1[0]) except: break