请帮我解决这个问题。我是一个初学者,这个练习让我发疯,因为我尝试切片,现在ASCII,这对我来说似乎更容易? 只有当字符大于字符串中的前一个字符时,我才设法提取该字符的ord值。如何从字母数组中获取最大排序的子字符串,或者至少从它们的ord值中获取?(代码应拉入'fruw',因为它是最大排序的)
s = 'gasgrerupxkgfruwgohfzl'
s2 = []
print s
for char in range(0, len(s)):
if ord(s[char]) >= ord(s[char-1]):
s2.append(str(ord(s[char])))
print s2
我的想法是正确的吗?我应该做哪些修改?谢谢
这里有一个函数可以做同样的事情,对于任何需要使用你的代码的人(包括你自己)来说,阅读和理解它的作用要简单得多。
请注意,不需要使用
ord()
,因为直接比较字符对您的问题非常有效。然后您可以将其用于您的示例:
^{pr2}$更重要的是,此实现还可以处理经典的角点情况,即空字符串:
它甚至可以与
^{4}$None
配合使用:(无输出,无错误;即函数返回
None
。)我已经尽可能的修改了你的代码
评论试图解释这些变化
我们先用索引的方法来完成:
使用生成器函数和
^{pr2}$max
的更好方法。这一次只能在内存中存储一个组:用法:
更新:
当然,如果您想处理空字符串,那么在函数的顶部添加一个简单的
if
条件。由于您没有详细说明如何处理重复字符(事实上,您的答案中也使用了>=
),但是从您的comment来判断,您想要的是一个简单的>
。相关问题 更多 >
编程相关推荐