假设我有一个随机字符串s ='abcdlfkdf',我想按字母顺序抓取最大的子字符串(问题已在此处解决)。但我想学习如何找到解决方案,以及如何将我的思想融入比较中。请注意,这只是后一代码的一小部分,我无法理解这个小的初始部分。
我对此问题的第一个初步解决方案如下:
s = 'abcdlfkdf'
sub= ''
for i in s:
if s[0] < s[i+1]:
#Can't compare integers with strings
所以显然你不能将整数与字符串进行比较,因此你无法使用索引来比较单个字符串。有什么选择?
有人能指出我的基本方向,真的想解决这个问题,而不是在远离解决方案的地方寻找任何东西。我的思想需要经历这一点。
谢谢!
答案 0 :(得分:0)
更改
for i in s:
为:
for i in range(len(s)):
答案 1 :(得分:0)
我想说我能给你的最好的提示是用Unicode或ASCII来查看字符的值:)
您可以使用两种不同的功能。 引用this:
function ord()将获取char的int值。如果你 想要在播放数字后转换回来,函数chr() 诀窍。
Unichar()是您可以使用的另一个功能。这是否足以暗示它? :)
我的尝试:
s = 'abcdlfkdf'
print("Our original string is " + str(s))
bestindex='0'
bestlength=0
for i in range(len(s)-2):
best = 0
m = i
while(ord(s[m]) < ord(s[m+1]) and m<len(s)-2):
best += 1
m += 1
if best > bestlength:
bestlength = best
bestindex=i
print("\n and the longest alphabetical substring is '" + s[bestindex:-(len(s)-bestlength-1)] + "'!")