zoukankan      html  css  js  c++  java
  • leetcode 01.02:判定是否互为字符串重排

    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @Class CheckPermutation
     * @Description 
     * 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
     * <p>
     * 示例 1:
     * 输入: s1 = "abc", s2 = "bca"
     * 输出: true
     * <p>
     * 示例 2:
     * 输入: s1 = "abc", s2 = "bad"
     * 输出: false
     * 说明:
     * 0 <= len(s1) <= 100
     * 0 <= len(s2) <= 100
     * @Author 
     * @Date 2020/6/23
     **/
    public class CheckPermutation {
    }
    
    public static boolean checkPermutation(String s1, String s2) {
    	if (s1.length() != s2.length()) {
    		return false;
    	}
    
        // 利用键值对,保存每个字符出现的次数,然后对比s2中相同字符出现的次数是否相等
    	Map<Character, Integer> map = new HashMap<>();
    	for (int i = 0; i < s1.length(); i++) {
    		char ch = s1.charAt(i);
    		if (map.containsKey(ch)) {
    			int temp = map.get(ch).intValue();
    			temp++;
    			map.put(ch, temp);
    		} else {
    			map.put(ch, 1);
    		}
    	}
    
    	for (int i = 0; i < s2.length(); i++) {
    		char ch = s2.charAt(i);
    		if (!map.containsKey(ch)) {
    			return false;
    		} else {
    			int temp = map.get(ch);
    			if (temp <= 0) return false;
    
    			temp--;
    			map.put(ch, temp);
    		}
    	}
    	return true;
    }
    
    // 测试用例
    public static void main(String[] args) {
    	String s1 = "abc", s2 = "bca";
    	boolean ans = checkPermutation(s1,s2);
    	System.out.println("demo01 result:"+ans);
    
    	s1 = "abc";
    	s2 = "bad";        
    	ans = checkPermutation(s1,s2);
    	System.out.println("demo02 result:"+ans);
    
    	s1 = "asvnpzurz";
    	s2 = "urzsapzvn";
    	ans = checkPermutation(s1,s2);
    	System.out.println("demo03 result:"+ans);
    }
    
  • 相关阅读:
    Spring使用JDBC配置具名参数
    linux中的匿名管道和命名管道
    linux查看CPU信息
    磁盘阵列RAID原理、种类及性能优缺点对比
    SMP和MPP的优缺点
    Hadoop datablock size
    MySQL 高可用架构之MHA
    MySQL 高可用架构之MMM
    五大常见的MySQL高可用方案
    hive加载数据
  • 原文地址:https://www.cnblogs.com/fyusac/p/13182032.html
Copyright © 2011-2022 走看看