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

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

def isInAlphabeticalOrder(word):

word1=sorted(word)

word2=[]

for i in word:

word2.append(i)

if word2 == word1:

return True

else:

return False

但我觉得除了将字符串转换成列表之外,还有一种更有效的方法(更少的代码行).是不是有一个操作数来按字母顺序排序字符串而不将每个字符串转换为列表?任何人都可以提出更有效的方法吗?

解决方法:

这具有O(n)的优点(对字符串进行排序为O(n log n)). Python中的字符(或字符串)如果按字母顺序排在前面,则“小于”另一个字符,因此为了查看字符串是否按字母顺序排列,我们只需要比较每对相邻的字符.另外,请注意您使用range(len(word) – 1)而不是range(len(word)),否则您将在循环的最后一次迭代中超越字符串的边界.

def isInAlphabeticalOrder(word):

for i in range(len(word) - 1):

if word[i] > word[i + 1]:

return False

return True

标签:python,sorting,string

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值