--------------------------------------------------------------------------------------------------------------------------------------------------------
时间限制:1秒 空间限制:32768K 代码长度限制 100 KB
--------------------------------------------------------------------------------------------------------------------------------------------------------
如果可以买,则在一行中输出“Yes”以及有多少多余的珠子;如果不可以买,则在一行中输出“No”以及缺了多少珠子。其间以1个空格分隔。
输入例子: ppRYYGrrYBR2258 YrR8RrY
-------------------------------------------------------------------------------------------------------------------------------------------------------
(1).将两个字符串均转换为字符数组s1Arr和s2Arr;
(2).双层循环,找s2Arr中的元素是否存在于s1Arr中,如果存在,则将记录存在珠子的数量haveCount加1,此时需要将s1Arr中的该珠子设置已匹配标记,否则会出现,只是包含,但数量不够的问题;
(3).判断haveCount与s2Arr长度大小即可判断是否可以买及差异。
--------------------------------------------------------------------------------------------------------------------------------------------------------
package com.biyao.algorithm.niuke.a1; import java.util.Scanner; public class Main_a1_029 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String s1 = scan.next(); String s2 = scan.next(); char[] s1Arr = s1.toCharArray(); char[] s2Arr = s2.toCharArray(); int haveCount = 0; for (int i = 0; i < s2Arr.length; i++) { for (int j = 0; j < s1Arr.length; j++) { if(s2Arr[i] == s1Arr[j]){ haveCount++; s1Arr[j] = ' '; break; } } } if(haveCount == s2Arr.length){ System.out.println("Yes" + " " + (s1Arr.length-haveCount)); }else{ System.out.println("No" + " " + (s2Arr.length-haveCount)); } } } }