1480. 找字典码最小的字符串
问题描述
编写程序,针对输入的 𝑁N 个不同的字符串,输出其中字典码最小的字符串。
输入
输入第一行给出正整数 𝑁N ;
随后 𝑁N 行,每行给出一个长度小于 8080 的非空字符串,其中不会出现换行符,空格,制表符。
输出
输出字典码最小的字符串。
样例
输入
复制
5 Li Wang Zha Jin Xian
输出
复制
Jin
#include <bits/stdc++.h>
using namespace std;
int main(){
//s:代表字典码最小的字符串,x:代表运算结果
string mi,x;
int n,i;
cin>>n;
//先读入一个字符串,作为被比较的对象
//假设它是字典码最小的字符串
cin>>mi;
//再次读入n-1个字符串,并逐个和mi比较(打擂台)
for(i = 2;i <= n;i++){
cin>>x;
if(x < mi){
mi = x;
}
}
cout<<mi;
}
1475. 字符串对比
问题描述
给定两个仅由大写字母或小写字母组成的字符串(长度介于 11 到 100100 之间),它们之间的关系是以下 44 种情况之一:
11:两个字符串长度不等。比如 Beijing
和 Hebei
22:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing
和 Beijing
33:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况22 )。比如 beijing
和 BEIjing
44:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing
和 Nanjing
编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
输入
包括两行,每行都是一个字符串。
输出
仅有一个数字,表明这两个字符串的关系编号。
样例
输入
复制
BEIjing beiJing
输出
复制
3
说明
【来源】蓝桥杯基础训练
#1、
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
string a,b;
cin>>a>>b;
int flag=2;
int n=a.length();
if (a.length()!=b.length()) cout<<1<<endl;
else{
for (int i=0;i<n;i++){
if (a[i]!=b[i]&& tolower(a[i])!=tolower(b[i])){
flag=4;
break;
}
else if (a[i]!=b[i] && tolower(a[i])==tolower(b[i])) flag=3;
}
cout<<flag;
}
return 0;
}
#2、
1.情况1和情况2很好判断
2.如果不符合情况1、情况2,将两个字符串都转小写,如果相等,就是情况3,否则是情况4
#include <bits/stdc++.h>
using namespace std;
string s1,s2;
int main() {
cin>>s1>>s2;
//情况1
if(s1.size() != s2.size()){
cout<<1;
} else if(s1 == s2){
cout<<2;
} else{
//将两个字符串中的大写都改小写,如果是一样的
//说明是情况3
for(int i = 0;i < s1.size();i++){
if(s1[i] >= 'A' && s1[i] <= 'Z'){
s1[i] = s1[i] + 32;//32 -> 'a' - 'A'
}
if(s2[i] >= 'A' && s2[i] <= 'Z'){
s2[i] = s2[i] + 32;//32 -> 'a' - 'A'
}
}
if(s1 == s2){
cout<<3;
}else{
cout<<4;
}
}
return 0;
}
#3、
定义函数,将字符串转小写:
#include<bits/stdc++.h>
using namespace std;
string s1,s2;
//将字符串转小写
string tolower(string s) {
for(int i = 0;i < s.size();i++){
if(s[i] >= 'A' && s[i] <= 'Z'){
s[i] = s[i] + 32;
}
}
return s;
}
int main() {
cin>>s1>>s2;
//情况1:长度不等
if(s1.size() != s2.size()) {
cout<<1;
} else if(s1 == s2) {
cout<<2;//情况2:字符串一样
} else if(tolower(s1) == tolower(s2)) {
cout<<3;
} else {
cout<<4;
}
r