2024-09-28 16:23:48 发布
网友
我的代码:
def inversions(s): last = '' count = 0 for letter in s: if letter > last: count += 1 last = letter return count
但我犯了一些错误,在那里它不正确计算。 呼叫示例:
inversion('ABBFHDL') 2
但我的是5
根据您的注释,要获得无序序列的总数并不像代码显示的那么容易。下面是我实现目标的一种方法
假设s中的字母都是大写的。我用字典来存储访问过的信件的编号。通过从字母到Z的迭代,找出目前为止有多少无序的字母
s
Z
def inversions(s): nums = dict() count = 0 for ch in s: for i in range(ord(ch) + 1,ord('Z')+1): count += nums.get(i,0) if nums.has_key(ord(ch)): nums[ord(ch)] += 1 else: nums[ord(ch)] = 1 return count
假设一个序列是“无序”的,如果你遇到同一个字符或者一个在你前面的字符
def solution(str): count = 0 for i in range(len(str)-1): if str[i] >= str[i+1]: count += 1 return count
给你:
Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) >>>solution('ABBFHDL') >>>2
根据您的注释,要获得无序序列的总数并不像代码显示的那么容易。下面是我实现目标的一种方法
假设
s
中的字母都是大写的。我用字典来存储访问过的信件的编号。通过从字母到Z
的迭代,找出目前为止有多少无序的字母假设一个序列是“无序”的,如果你遇到同一个字符或者一个在你前面的字符
给你:
相关问题 更多 >
编程相关推荐