检查字符串是否按字母顺序排列

-1 投票
3 回答
1557 浏览
提问于 2025-04-16 12:43

这个函数应该计算大写字母在字母表顺序中错位的次数。

>>> abc('ABBZHDL')
    2

在上面的例子中,z和d的顺序是错的。

>>> abc('ABCD')
    0

>>> abc('DCBA')
    4

我的代码:

 def abc(check):
 order=ABCDEFGHIJKLMNOPQRSTUVWXYZ
   for c in check:
      if check != order:
   #then I get stuck here

指针?

3 个回答

0

在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够清晰,或者是我们对某些概念理解得不够透彻。比如,有人可能会在使用某个功能时,发现它并没有按照预期的方式工作。这种情况通常需要我们仔细检查代码,看看是不是哪里出了问题。

另外,编程语言有很多不同的特性和用法,初学者可能会感到困惑。为了更好地理解这些内容,建议大家多做练习,尝试自己写一些小程序,逐步加深对编程的理解。

总之,遇到问题时不要气馁,慢慢来,逐步解决,相信你会越来越熟练的!

def abc(check):
   last = ''
   count = 0
   for letter in check:
      if not letter.isupper():
           continue
      if letter < last:
           count += 1
      last = letter
   return count 
0
import string

a = 'acbdefr'
b = 'abdcfe'

assert ''.join(sorted(b)) in string.ascii_letters
assert ''.join(sorted(a)) in string.ascii_letters #should fail

这其实很简单,大家好像把它搞得太复杂了?

1

这个问题说得不太清楚。对于一个相似的问题,有一个解决办法是使用内置的 sorted() 函数:

def abc(s):
    count = 0
    s = ''.join(i for i in s if i.isupper())
    l = sorted(s)
    for i,c in enumerate(s):
        if l[i] != c:
            count += 1
    return count

这个方法会计算出字母顺序排列的字符串和原始字符串不一样的地方有多少个。

撰写回答