PTA-B 1039 到底买不买 解题思路记录

#include <cstdio>
#include <string>
#include <iostream>
using namespace std;

int main(){
	string sell, want;
	int i, j;
	cin >> sell;
	cin >> want;
	//str matching
	for(i = 0; i < want.size(); i++){
		for(j = 0; j < sell.size(); j++){
			if(want[i] == sell[j]){
				want.erase(want.begin() + i);    //成功匹配后删除两个字符串中的字符
				sell.erase(sell.begin() + j);
				i--;    //此处i--是因为删除一个字符后,want字符串长度-1,下一个要匹配的字符串位置也就往前的一位,保持i的值不变即为下一个要匹配的字符串
				break;
			}
		}
	}
	//output 
	if(want.size() == 0){
		printf("Yes %d", sell.size());    //sell剩余的长度即为多余数量
	}
	else{
		printf("No %d", want.size());    //want剩余长度即为不足数量
	}
}
posted on 2019-03-07 17:40  WayneYe  阅读(174)  评论(0编辑  收藏  举报