如何比较Char Strings

时间:2017-02-06 10:57:30

标签: python string

所以我试图在字符串中找到最小/最小的字符。该程序假设将每个字符相互比较并找到最小的字符。在打电话时应该是这样的。

least("rcDefxB")
The least char is B

这是我到目前为止的代码

def least(inputS):
for i in range(len(inputS)-1):
    current = inputS[i]
    nextt = inputS[i+1]
    if current > nextt:
        current = nextt
        nextt = inputS[i+2]
        print('The least char is',current)

但我得到的输出是:

least("rcDefxB")
C
D
IndexError: string index out of range
in line least nextt = inputS[i+2]

我可能以错误的方式增加或者以错误的方式比较我的角色。我觉得我有正确的设置,让我知道我错过了我的代码。

4 个答案:

答案 0 :(得分:5)

你可以使用:

min("rcDefxB")

如果您真的想自己编写,可以使用:

def leastChar(inputString):
  min_char = inputString[0]
  for char in inputString:
    if char < min_char:
      min_char = char
  print 'The leastchar is %s' % min_char

两种方法都需要非空字符串。

答案 1 :(得分:2)

Eric Duminil解决方案更好,但如果您希望代码正常工作,则应按如下方式修改:

inputString = "rcDefxB"
index = 0
while index < len(inputString) - 1:
    currentChar = inputString[index]
    nextChar = inputString[index + 1]
    if currentChar > nextChar:
        currentChar = nextChar
    index += 1
print('The leastchar is',currentChar)

答案 2 :(得分:2)

如果最小则表示ASCII码位置:

>>> s = "aBCdefg"
>>> min(s)
'B'

但如果你的意思是字母位置忽略大写或小写:

>>> min(s, key=lambda x: x.upper())
'a'

答案 3 :(得分:0)

请考虑以下方法:

1 / std::sqrt(x)

运行def least(inputString): leastChar = min(list(inputString)) print('The leastchar is', leastChar) 后,您将拥有:

least("rcDefxB")