2つの文字列の最短距離の計算

7601 ワード

2文字列の最短距離の計算(C++)
【問題の説明】キーボードから2組の英字(大文字と小文字の英字を含む)を入力します.各組の英字には重複文字がなく、それぞれ小文字に変換され、2つの配列aとbに格納されます.英字表に基づいて、a配列とb配列の中で英字表の中で最も近い2つの英字の距離を出力してください.【入力形式】入力は2行の英字を含み、大文字と小文字があり、各行10要素を超えない【出力形式】整数を出力し、2つの配列の中で最も近い2つの英字の距離を表し、2つのアルファベットが同じであれば0【サンプル入力】を出力する
abxy
cAzzp
【サンプル出力】0
【サンプル入力】
aBc
deF
【サンプル出力】1
【サンプル入力】
xYzy
deFac
【サンプル出力】18
#include
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;
}