zoukankan      html  css  js  c++  java
  • LeetCode389-找不同(查找)

    查找问题,最先想到Map和Set

    一开始觉得用set即可,因为把s的内容存进去,对t进行遍历,不在里面的肯定就是新增加的了

        public char findTheDifference(String s, String t) {
            Set<Character> set = new HashSet<>();
    
            int lenS = s.length();
            int lenT = t.length();
    
            for(int i=0;i<lenS;i++){
                set.add(s.charAt(i));
            }
    
            char result = ' ';
    
            for (int i=0;i<lenT;i++){
                if(!set.contains(t.charAt(i))){
                    result = t.charAt(i);
                    break;
                }
            }
    
            return result;
        }

    但是没有考虑到,相同字母的问题

    用HashMap,把每个字母存进去,然后存对应的值。

    1、如果t中的某个字母不在Map中,他就是多出来的。

    2、如果t中的字母,在Map中,但是个数不一样,他就是多出来的。

    用Map麻烦,因为是24个字母,用数组即可

    首先确认两件事情

    a的数值是97,int数组默认是0

    char c = 'a';
            System.out.println((int)c);//97
    
            int [] ss = new int[24];
            System.out.println(ss[1]);//0

    26个字母,记成24了。。。

    public char findTheDifference(String s, String t) {
            int [] ss = new int[26];
    
            int lenS = s.length();
            int lenT = t.length();
    
            //将s的字符对应的位置++
            for(int i=0;i<lenS;i++){
                ss[(int)s.charAt(i)-97]++;
            }
    
            char result = ' ';
    
            //如果t中有相应的字符,那就--进行抵消
            //如果数组变成负数了,这个位置的字符就是多出来的
            for(int i=0;i<lenT;i++){
    
                int temp = --ss[(int)t.charAt(i)-97];
                if(temp==-1){
                    result = t.charAt(i);
                    break;
                }
    
            }
    
            return result;
        }

    国内leetcode有问题。。

    第一次

    然后同样的代码,第二次

  • 相关阅读:
    寒假学习进度报告(一)
    【web】公文流转系统制作进度(一)(2019/12/9)
    【规律】A Rational Sequence
    【记忆化搜索】Happy Happy Prime Prime
    【背包问题】PACKING
    【动态规划】正则表达式匹配
    【数据结构】P1310 表达式的值
    【数据结构】P1449 后缀表达式
    【数据结构】P1054 等价表达式
    【数据结构】表达式求值
  • 原文地址:https://www.cnblogs.com/weizhibin1996/p/9644035.html
Copyright © 2011-2022 走看看