设计算法比较串S1和串S2的大小(S1<S2,返回-1;S1=S2,返回0;S1<S2返回1)
时间: 2024-03-27 08:40:42 浏览: 111
比较两个字符串的大小,可以采用从左到右逐个字符比较的方法。首先比较两个字符串的第一个字符,如果相等,则继续比较下一个字符,直到有一个字符串的字符不等于另一个字符串的对应字符为止。如果两个字符串在某个位置不相等,那么就可以根据这个位置上两个字符的大小关系,确定两个字符串的大小关系。
具体实现可以使用两个指针i和j分别指向S1串和S2串的第一个字符,然后依次比较它们是否相等。如果相等,i和j都向后移动一位,否则比较两个字符的ASCII码值。如果S1串的字符比S2串的字符小,则返回-1;如果S1串的字符比S2串的字符大,则返回1;如果两个字符相等,则继续比较下一个字符。如果某个字符串已经到达末尾,则根据字符串长度的关系,确定两个字符串的大小关系。
以下是比较字符串大小的C++代码实现:
```
int compareStrings(string S1, string S2) {
int n1 = S1.size();
int n2 = S2.size();
int i = 0, j = 0;
while (i < n1 && j < n2) {
if (S1[i] == S2[j]) {
i++;
j++;
} else if (S1[i] < S2[j]) {
return -1;
} else {
return 1;
}
}
if (i == n1 && j == n2) {
return 0;
} else if (i == n1) {
return -1;
} else {
return 1;
}
}
```
阅读全文