def compare_strings(str1, str2): str1 = str1.strip() str2 = str2.strip() i = 0 while i < len(str1) and i < len(str2): if str1[i] == str2[i]: i += 1 continue if str1[i].isspace(): return -1 elif str2[i].isspace(): return 1 if str1[i].isupper() and str2[i].islower(): return -1 elif str1[i].islower() and str2[i].isupper(): return 1 if str1[i] < str2[i]: return -1 else: return 1 if len(str1) == len(str2): return 0 elif len(str1) < len(str2): return -1 else: return 1 string1 = input() string2 = input() print(compare_strings(string1, string2))改进代码,使内存缩小
时间: 2024-02-14 14:12:26 浏览: 49
可以将字符串的比较逻辑合并,减少代码重复,并且在循环中使用 range(len(str1)) 代替 while 循环,这样可以避免使用 i 变量。此外,不需要使用 strip() 函数,因为输入的字符串已经是去除了空格的。
改进后的代码如下:
```python
def compare_strings(str1, str2):
for i in range(len(str1)):
if i >= len(str2):
return 1
if str1[i] != str2[i]:
if str1[i].isupper() and str2[i].islower():
return -1
elif str1[i].islower() and str2[i].isupper():
return 1
elif str1[i] < str2[i]:
return -1
else:
return 1
if len(str1) == len(str2):
return 0
else:
return -1 if len(str1) < len(str2) else 1
string1 = input().strip()
string2 = input().strip()
print(compare_strings(string1, string2))
```
这样修改后,代码更简洁,内存开销也会更小。
阅读全文