zoukankan      html  css  js  c++  java
  • 给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串

    示例 1:

    输入: s1 = "abc", s2 = "bca"
    输出: true
    示例 2:

    输入: s1 = "abc", s2 = "bad"
    输出: false

    //我的解决方案
    class Solution {
        public boolean CheckPermutation(String s1, String s2) {
    
            if (s1.length() != s2.length()) {
                return false;
            } else {
                char[] chars = s1.toCharArray();
                char[] chars1 = s2.toCharArray();
                Arrays.sort(chars);
                Arrays.sort(chars1);
    //         return  Arrays.equals(chars, chars1); 看到别人的实现方式和自己一样,学到了Arrays中可以这样判断两个数组是否一样,学到了
               return String.valueOf(chars).equals(String.valueOf(chars1)) ? true : false;
    
            }
    
        }
    
    }
    
    
    //方案二
    /**
    把字符串s1放到map中进行统计,再用s2去验证
    */
    
    public static boolean CheckPermutation(String s1, String s2) {
            if(s1.length() != s2.length())
                return false;
            HashMap<Character, Integer> map = new HashMap<>();//k:字符  v:数量
            //将s1的字符添加到map中
            for(char ch : s1.toCharArray()){
                if(map.containsKey(ch)){
                    int i = map.get(ch);
                    map.put(ch, ++i);
                }else{
                    map.put(ch, 1);
                }
            }
            //判断s2中字符出现的次数是否和s1相同
            for(char ch : s2.toCharArray()){
                if(map.containsKey(ch)){
                    int i = map.get(ch);
                    map.put(ch, --i);
                    if(i < 0){//s2中的某个字符比第一个字符出现的次数多,直接就可以断定不相等了
                        return false;
                    }
                }else{
                    return false;
                }
            }
            return true;
        }
    
    
    
    
  • 相关阅读:
    课程设计之第一次冲刺---第三天(11.13-11.14)
    课程设计之第一次冲刺---第二天(11.12)
    课程设计之第一阶段冲刺---第一天(11.11)
    团队贡献分分配
    尸体解剖
    回答自己的提问
    第三阶段冲刺--第2天
    第三阶段冲刺--第1天
    对其他组评价的反馈
    《一个程序猿的生命周期》读后感
  • 原文地址:https://www.cnblogs.com/love-xk/p/13053157.html
Copyright © 2011-2022 走看看