比较python中的字符串索引

时间:2015-01-08 20:18:27

标签: python

假设我有一个随机字符串s ='abcdlfkdf',我想按字母顺序抓取最大的子字符串(问题已在此处解决)。但我想学习如何找到解决方案,以及如何将我的思想融入比较中。请注意,这只是后一代码的一小部分,我无法理解这个小的初始部分。

我对此问题的第一个初步解决方案如下:

s = 'abcdlfkdf'
sub= ''
for i in s:
    if s[0] < s[i+1]:
       #Can't compare integers with strings

所以显然你不能将整数与字符串进行比较,因此你无法使用索引来比较单个字符串。有什么选择?

有人能指出我的基本方向,真的想解决这个问题,而不是在远离解决方案的地方寻找任何东西。我的思想需要经历这一点。

谢谢!

2 个答案:

答案 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)] + "'!")