按照字典规则比较两个英文字符串的大小,基本规则如下: (1)字符串左对齐比较 (2)字母无大小写对应关系时忽略大小写,比如’B’不仅大于’A’,也大于’a’ (3)字母有大小写对应关系时,大写小于小写,比如’A’小于’a’ (4)字符串中只有大小写字母和空格,空格小于任何字母 例如:“aBc”<“abc”,“abcdef”<“abD”,“Abcd”<“abc”
时间: 2024-03-10 07:49:53 浏览: 37
以下是按照字典规则比较两个英文字符串大小的Python代码实现:
```python
def compare_string(s1, s2):
s1 = s1.lower()
s2 = s2.lower()
i = j = 0
while i < len(s1) and j < len(s2):
if s1[i] == s2[j]:
i += 1
j += 1
continue
if s1[i] == ' ':
return True
if s2[j] == ' ':
return False
if ord(s1[i]) == ord(s2[j]) + 32:
return True
if ord(s1[i]) + 32 == ord(s2[j]):
return False
return ord(s1[i]) < ord(s2[j])
return len(s1) < len(s2)
```
代码中,我们先将两个字符串都转为小写,然后使用两个指针i和j分别指向两个字符串的第一个字符。
对于每个字符的比较,我们有以下几种情况:
1. 如果两个字符相同,则继续比较下一个字符。
2. 如果s1[i]是空格,则s1[i]小于s2[j]。
3. 如果s2[j]是空格,则s1[i]大于s2[j]。
4. 如果s1[i]和s2[j]是大小写对应关系,则比较它们的ASCII码值,如果s1[i]的ASCII码值比s2[j]的ASCII码值大32,则s1[i]小于s2[j]。
5. 如果s1[i]和s2[j]不是大小写对应关系,则比较它们的ASCII码值,如果s1[i]的ASCII码值比s2[j]的ASCII码值小,则s1[i]小于s2[j]。
6. 如果两个字符串中有一个字符串比另一个字符串短,则较短的字符串小于较长的字符串。
注意,在比较之前,我们将两个字符串都转为小写,这是为了忽略大小写进行比较。
使用这个函数,我们可以很容易地比较两个字符串的大小。例如:
```python
>>> compare_string('aBc', 'abc')
True
>>> compare_string('abcdef', 'abD')
False
>>> compare_string('Abcd', 'abc')
True
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)