计算两个字符串的最短距离(C++)
【问题描述】从键盘输入两组英文字符(包括大写和小写英文字符),每组英文字母中都没有重复字母,分别转化为小写字符并存入两个数组a和b中,以英文字母表为依据,请输出a数组和b数组中在英文字母表中最接近的两个英文字母的距离。
【输入形式】输入包括两行英文字母,有大写和小写字母,每行不超过10个元素
【输出形式】输出一个整数,表示两个数组中最接近的两个英文字母的距离,如果两个字母相同,则输出为0
【样例输入】
abxy
cAzzp
【样例输出】
0
【样例输入】
aBc
deF
【样例输出】
1
【样例输入】
xYzy
deFac
【样例输出】
18
#include<bits/stdc++.h>
using namespace std;
//计算最小距离
int minx(int min,string str1,string str2){
int length1=str1.length();
int length2=str2.length();
min=abs(str1[0]-str2[0]);
for(int i=0;i<length1;i++){
for(int j=0;j<length2;j++){
if(abs(str1[i]-str2[j])<min){
min=abs(str1[i]-str2[j]);
}
}
}
return min;
}
//字母大小写转换
void tostring(string &str){
int i=0;
int length=str.length();
while(i<length){
if(str[i]>='A'&&str[i]<='Z'){
str[i]=str[i]+32;
}
i++;
}
}
int main(){
string str1,str2;
int min;
cin>>str1;
cin>>str2;
tostring(str1);
tostring(str2);
min=minx(min,str1,str2);
cout<<min;
}