4.找字符串数组中所有字符串中都出现相同次数的字符

题目: 

public class FindCommonStrings {

	 public static List<String> commonChars(String[] A) {
		 	if(A.length<0||A.length>100){
		 		return null;
		 	}
		 	if(A[0].equals(""))
		 		return null;
		 	//暂存第一个字符串
		   	char[] s = A[0].toCharArray();
	        int j=1;
	        //保存结果
	        ArrayList<String> list = new ArrayList<String>();
	    
	        for(int i=0;i<s.length;i++){
	            //对第一个字符串的每个字符,找其他字符串里是否有出现过
	            for(j=1;j<A.length;j++){
	            	int index = A[j].indexOf(s[i]);
	            	//一旦没有出现过,就跳出循环,看下一个字符
	                if(index==-1){
	                    break;
	                }else{
	                	/*出现了s[i],把A[j]的当前的s[i]替换为空格
	                	因为有的字符可能在所有字符串里出现相同的次数,有的出现次数不一样,
	                	只有在所有字符串里出现相同次数的才是目标字符
	                	*/
	                	A[j]=A[j].replaceFirst(""+s[i], " ");
	                }
	            }
	            //有字符在所有字符串里均出现了
	            if(j==A.length){
	                list.add(s[i]+"");
	            }
	            
	        }
	        return list;
	  }
	 
	 public static void main(String[] args) {
		System.out.println(commonChars(new String[]{"cool","lock","cook"}).toString());
		System.out.println(commonChars(new String[]{"bella","label","roller"}).toString());
		
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值