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;
        }
    
    
    
    
  • 相关阅读:
    ES6 一些新特性的总结
    前端模块化开发的规范:AMD与CDM
    webpack与grunt/glub 的比较
    前端总结(一)
    前端性能的优化
    Typescript 常见写法
    显示模式------行内元素、块元素,行内块元素
    浏览器前缀及内核
    BFC规范
    数据库习题练习
  • 原文地址:https://www.cnblogs.com/love-xk/p/13053157.html
Copyright © 2011-2022 走看看