• 给定两个字符串 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;
        }
    
    
    
    
  • 相关阅读:
    接口优先于抽象类
    接口优先于抽象类
    PHP的isset()函数
    mysql linux安装
    为mediawiki用户重置密码
    explode在PHP中的用法
    ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: N)
    http://blog.csdn.net/spidertiger/archive/2006/09/11/1206512.aspx
    最新linux+vsftpd配置详解
    widows下安装mediawiki
  • 原文地址:https://www.cnblogs.com/love-xk/p/13053157.html
Copyright © 2020-2023  润新知