所以我试图在字符串中找到最小/最小的字符。该程序假设将每个字符相互比较并找到最小的字符。在打电话时应该是这样的。
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]
我可能以错误的方式增加或者以错误的方式比较我的角色。我觉得我有正确的设置,让我知道我错过了我的代码。
答案 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")