zoukankan      html  css  js  c++  java
  • 新知识-Java Map.put(Leetcode 205)

    力扣205题——同构字符串

    代码

    class Solution {
        public boolean isIsomorphic(String s, String t) {
            HashMap<Object,Integer> map= new HashMap();
            Integer i = 0;
            for (; i < s.length(); i++) {
                if(map.put(s.charAt(i),i) != map.put(t.charAt(i)+"",i)) return false;
            }
            return true;
        }
    }
    

    我太菜了

    思路

    False:
    1.我一开始想用getOrdefault存放s和t的字符个数
    2.想通过>0的情况下判断2个String有无不同个数的字符个数
    True:
    1.完全不需要用map.put(s,map.getOrdefault(s,0)+1)来存放字符个数,直接for i找到下标用charAt(i)遍历就行了,哦吼吼我真菜!!!!
    2.可以直接用map<Character,Character>存放2个String的映射就行,然后用map的k-v解决就行了

    这里贴一个评论区大神的代码:

    class Solution {
        public boolean isIsomorphic(String s, String t) {
            if(s.length() != t.length()){
                return false;
            }
            
            HashMap<Character, Character> map = new HashMap<>();
            for(int i=0; i<s.length(); i++){
                if(!map.containsKey(s.charAt(i))){
                    if(map.containsValue(t.charAt(i))){
                        return false;
                    }
                    map.put(s.charAt(i), t.charAt(i));
                }else{
                    if(map.get(s.charAt(i))!=t.charAt(i)){
                        return false;
                    }
                }
            }
            
            return true;
        }
    }
    

    今日份收获:

    Map<Object,Integer> map
    map.put(s.charAt(i),i)显示:
    1.当map不存在映射时,返回null
    2.如果存在Key值,返回上一个Key值
    3.其实我没太弄懂,表述不好,评论区希望大佬补述一下详细,谢谢大佬!!

    Java打卡

  • 相关阅读:
    老李分享:qtp自动化测试框架赏析-关键字自动化测试框架
    QTP自动化测试培训:描述编程之WebElement
    测试开发Python培训:自动发布新浪微博-技术篇
    老李分享:开发python的unittest结果输出样式
    布隆过滤器
    缓存击穿、缓存穿透、缓存雪崩
    JVM锁优化
    Java 异常体系
    常用的SQL调优
    Mysql 索引
  • 原文地址:https://www.cnblogs.com/husiyu/p/15125211.html
Copyright © 2011-2022 走看看