#include <iostream> #include <string> using namespace std; int main(){ string str1,str2; int a[1000]={0}; int noe=0; int flag=0; cin>>str1; //接收第一个字符串 被比较的字符串 cin>>str2; //用于比较的字符串 for(int i=0;i<str2.length();i++){ //外层的循环 从比较的字符串第一个开始 比较 for(int j=0;j<str1.length();j++){ //内层循环 从被比较的第一个开始比较 str2中的每个字符都会和str1中的所有字符进行比较 直到找到相同的或者 没找到 则循环到str1的末尾 if(str1[j]==str2[i]&&a[j]!=1){ //判断的函数 如果str2中的一个字符和str1中的字符相同 而且是不是之前就已配对过的 就把这个str1中的这个字符设置为 已配对 a[j]=1; //设置为已配对 flag=1; //设置为配对完成 才退出循环的 break; } } if(flag==0){//如果是遍历到末尾才退出循环的 也就是没有找到匹配的 就noe自加; noe++; } flag=0; } if(noe==0){ printf("Yes %d",str1.length()-str2.length()); } else printf("No %d",noe); return 0; }
PATB 1039. 到底买不买 解题代码
最新推荐文章于 2020-10-03 21:38:48 发布
这是一个C++编程问题,旨在检查两个字符串中是否存在匹配的字符。代码通过两层循环比较两个字符串,如果找到匹配的字符并标记已配对,然后计算未配对的字符数。最后根据未配对字符数决定输出"Yes"或"No"及匹配差值。
摘要由CSDN通过智能技术生成