返回 课程
信奥AC之路-3级
0% 完成
0/0 步骤
-
第一课:数组基础4 主题|小节
-
第二课:数组基础二6 主题|小节
-
第三课:数组基础三6 主题|小节
-
第四课:数组基础四7 主题|小节
-
第五课:数组基础五5 主题|小节
-
第六课:数组用于统计,去重,排序5 主题|小节
-
第七课:冒泡排序6 主题|小节
-
第八课:数组连续性元素6 主题|小节
-
第九课:数组综合一7 主题|小节
-
第十课:字符数组7 主题|小节
-
第十一课:字符数组基础应用5 主题|小节
-
第十二课:字符数组基础应用二6 主题|小节
-
第十三课:字符数组进阶6 主题|小节
-
第十四课:字符串进阶二6 主题|小节
-
第十五课:字符串(STL)9 主题|小节
-
第十六课:字符串基础6 主题|小节
-
第十七课:字符串函数6 主题|小节
-
第十八课:字符串函数二4 主题|小节
-
第十九课:sort函数7 主题|小节
-
第二十课:字符串进阶7 主题|小节
-
第二十一课:字符串进阶二6 主题|小节
-
第二十二课:进制转换--十进制转其他进制5 主题|小节
-
第二十三课:进制转换--其他进制转十进制5 主题|小节
-
第二十四课:二进制,八进制,十六进制转换5 主题|小节
-
第二十五课:数据编码基础6 主题|小节
-
第二十六课:位运算基础6 主题|小节
课 进展
0% 完成
“在计算机科学中,我们经常需要比较字符串的大小,”我说道,”字典序就像查字典一样,按字母顺序比较字符串的大小关系。”
12.3.1 寻找字典序最小的字符串
题目描述: 编写程序,针对输入的N个不同的字符串(长度不超过30),输出其中字典码最小的字符串。
输入格式: 输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。
输出格式: 输出字典码最小的字符串。
样例输入:
5
Li
Wang
Zha
Jin
Xian
样例输出:
Jin
代码实现(方法一:手动比较):
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[35], mi[35]; // a存储当前字符串,mi存储最小字符串
int n;
cin >> n;
cin >> mi; // 读入第一个字符串作为初始最小值
n--; // 还需要读入n-1个字符串
while(n--){
cin >> a; // 读入下一个字符串
bool f = false; // 标记是否需要更新最小字符串
// 逐字符比较两个字符串
for(int i = 0; i < min(strlen(a), strlen(mi)); i++){
if(a[i] != mi[i]){ // 找到第一个不同的字符
if(a[i] < mi[i]){ // 如果a的字符更小
f = true; // 需要更新最小字符串
}
break; // 跳出比较循环
}
// 如果比较到了较短字符串的末尾
if(i == min(strlen(a), strlen(mi)) - 1){
if(strlen(a) < strlen(mi)){ // 较短的字符串字典序更小
f = true;
}
}
}
// 如果需要更新,复制新的最小字符串
if(f == true){
for(int i = 0; i < strlen(a); i++){
mi[i] = a[i];
}
mi[strlen(a)] = '