首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中检查字符串是否按字母顺序排列

在python中检查字符串是否按字母顺序排列
EN

Stack Overflow用户
提问于 2012-12-02 00:50:14
回答 7查看 54.2K关注 0票数 12

我将以下代码放在一起检查字符串/单词是否按字母顺序排序:

代码语言:javascript
运行
复制
def isInAlphabeticalOrder(word):
    word1=sorted(word)
    word2=[]
    for i in word:
        word2.append(i)
    if word2 == word1:
        return True
    else:
        return False

但是我觉得一定有一种更有效的方法(更少的代码行)来检查,而不是将字符串转换为列表。是否有一个操作数可以按字母顺序对字符串进行排序,而无需将每个字符转换为列表?有没有人能建议一种更有效的方法?

EN

Stack Overflow用户

回答已采纳

发布于 2012-12-02 01:08:18

这样做的优点是O(n) (对字符串进行排序是O(n log n))。在Python中,如果一个字符(或字符串)按字母顺序出现在它之前,那么它就是“小于”另一个字符,所以为了查看一个字符串是否按字母顺序排列,我们只需要比较每一对相邻的字符。还要注意,您需要使用range(len(word) - 1)而不是range(len(word)),否则您将在循环的最后一次迭代中超出字符串的界限。

代码语言:javascript
运行
复制
def isInAlphabeticalOrder(word):
    for i in range(len(word) - 1):
        if word[i] > word[i + 1]:
            return False
    return True
票数 17
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13661479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档