栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

力扣刷题笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

力扣刷题笔记

LeetCode刷题笔记(Java版)

本人是刚开始刷LeetCode的小白,写下这篇文章主要是记录自己的刷题过程的一些理解,还望各位大佬多多指教。

389 找不同

给定两个字符串 s 和 t,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例 1:

输入:s = "abcd", t = "abcde"
输出:"e"
解释:'e' 是那个被添加的字母。

示例 2:

输入:s = "", t = "y" 
输出:"y"

示例 3:

输入:s = "a", t = "aa"
输出:"a"
解1 数组

因为输入的两个字符串都是是小写字母,因此设置一个大小为26的数组table。分别遍历传入的两个字符串s与t,遍历s字符串时,把s中的字符转换为ASCII码并减去字符a的ASCII码,得到的结果可以作为table的索引,遍历t也是一样。在遍历的过程中,将s中的字符记为-1,t中的字符记为+1,分别存入table数组。最后遍历table数组,当s与t中的字符一致时(每种字符个数一样),数组中存入的数据为0,如果不是0,则对应索引的数据+a的ASCII码即为不同值。

    public char findTheDifference(String s, String t) {
    int sizeS = s.length();
    int sizeT = t.length();
    
    if(sizeS == 0){             //如果s中没有元素,t中第一个元素就是多出来的
        return t.charAt(0);
    }

    int[] table = new int[26];
    for(int i = 0; i 
解2 
求和 

将s和t中每个字符的ASCII码求和分别得到As,At;At-As对应的字符即被添加的字符。

    public char findTheDifference(String s, String t)
    {
        int sum1 = 0,sum2 = 0;
        for (int i = 0; i  
复杂度分析 
  • 时间复杂度:O(N)
  • 空间复杂度:O(1)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/489395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号