本文主要是介绍蓝桥杯Anagrams问题题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*此题要考虑的是字符串的输入后,通过对字符串长度的判断以及通过标志变量法解题*/
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>using namespace std;int main()
{string s1;string s2;int find;while(cin>>s1>>s2){find = 0;if(s1.length() != s2.length()){//在string类型下s1.length()可以计算字符串s1的长度;此处对长度作一判断若不一样长则不等; cout<<"N"<<endl;break;}elsefor(int i = 0; i < s1.length(); i++){for(int j = 0; j < s2.length(); j++){if(s1[i]>= 'A' && s1[i] <= 'Z') s1[i] = s1[i] + 32;//这里由于题意要求不管大小写因此可对大写字母全部换成小写字母输入;if(s2[j]>= 'A' && s2[j] <= 'Z') s2[j] = s2[j] + 32;if(s1[i] == s2[j]){//这里对字符串S2做判断若和s1有相等且必须是第一个相等的将其可任意置一字符,表示已经判断过下次循环不在判断;s2[j] = '0';//必须是第一个字符的原因为一个字符串内可能有多个相同的字符,这样可以遍历到所有字符;if(s2[i] != '0') {find = 1;//这里用标识变量判断字符是否‘0’只要有一个便跳出循环结束;break;}}if(find == 1)cout<<"N"<<endl;if(find == 0)cout<<"Y"<<endl;}return 0;
}
这篇关于蓝桥杯Anagrams问题题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!