题解 | 比较版本号
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
# !!!提供了一个新思路 比较数组形式的字符串大小可以通过补0来使数组长度一致 # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 比较版本号 # @param version1 string字符串 # @param version2 string字符串 # @return int整型 # class Solution: def dealForNum(self,str1:str ): return int(str1.lstrip('0')) if str1.lstrip('0') else 0 def compare(self , version1: str, version2: str) -> int: # write code here list1 = version1.split(".") list2 = version2.split(".") len1 = len(list1) len2 = len(list2) maxlen = max(len1,len2) for i in range(maxlen): s1 =self.dealForNum(list1[i]) if i<len1 else 0 s2 =self.dealForNum(list2[i]) if i<len2 else 0 print(s1) print(s2) if s1>s2: return 1 if s1<s2: return -1 return 0
附上lstrip的用法
- 移除开头的空白字符 python
定义一个包含开头空白字符的字符串
str1 = " Hello, World!"
调用 lstrip() 方法移除开头的空白字符
result = str1.lstrip()print(result)
定义一个包含开头指定字符的字符串
str2 = "000123"
调用 lstrip() 方法移除开头的 '0'
result = str2.lstrip('0')print(result)
输出结果:plaintext1233. 移除开头的多个指定字符python
定义一个包含开头多个指定字符的字符串
str3 = "abcHello, World!"
调用 lstrip() 方法移除开头的 'a'、'b'、'c'
result = str3.lstrip('abc')print(result)
注意事项lstrip() 方法只会移除字符串开头的指定字符,不会影响字符串中间和结尾的字符。chars 参数指定的是字符集合,而不是字符串序列,也就是说只要开头的字符在 chars 中,就会被移除,与字符在 chars 中的顺序无关。