每日一题 20.12.18 LeetCode 389. 找不同java题解
嚯 第一次做力扣的每日一题
题目
https://leetcode-cn.com/problems/find-the-difference/
方法一:计数
时间复杂度:O(N),其中 N 为字符串的长度。
空间复杂度:O(1)。固定数量26的数组。
class Solution {public char findTheDifference(String s, String t){if(s.length()==0)return t.charAt(0);int[] count=new int[26];for(int i=0;i<s.length();i++){char c=s.charAt(i);count[c-'a']++;}for(int i=0;i<t.length();i++){char c=t.charAt(i);if(count[c-'a']==0)return c;count[c-'a']--;}return 'a';}
}
方法二:ASCII
对s中的字符求和,对t中的字符求和,他们的差就是结果。
class Solution {public char findTheDifference(String s, String t) {int as = 0, at = 0;for (int i = 0; i < s.length(); ++i) {as += s.charAt(i);}for (int i = 0; i < t.length(); ++i) {at += t.charAt(i);}return (char) (at - as);}
}
时间复杂度:O(N)
空间复杂度:O(1)
方法三:位运算
如果将两个字符串拼接成一个字符串,则问题转换成求字符串中出现奇数次的字符。类似于「136. 只出现一次的数字」,我们使用位运算的技巧解决本题。
class Solution {public char findTheDifference(String s, String t) {int ret = 0;for (int i = 0; i < s.length(); ++i) {ret ^= s.charAt(i);}for (int i = 0; i < t.length(); ++i) {ret ^= t.charAt(i);}return (char) ret;}
}
时间复杂度:O(N)
空间复杂度:O(1)
每日一题 20.12.18 LeetCode 389. 找不同java题解相关推荐
- 每日一题4.12.1
每日一题4.12.1 年会抽奖 ** 参考答案:**
- 【寒假每日一题】分巧克力(个人练习)详细题解+推导证明(第八天)附带转载程序员壁纸
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 话说今天开始准备搞一个秋招的GitHub,算是复习一遍了. 今天还是寒假每日一 ...
- 【Leetcode -389.找不同 -392.判断子序列】
Leetcode Leetcode -389.找不同 Leetcode -392.判断子序列 Leetcode -389.找不同 题目:给定两个字符串 s 和 t ,它们只包含小写字母. 字符串 t ...
- 【LeetCode笔记 - 每日一题】375. 猜数字游戏 II (Java、DFS、动态规划)
文章目录 题目描述 思路 && 代码 DFS 动态规划 新系列-用于区分开高频题和每日一题- 题目描述 一眼二分,但是实际上并不是 这题让我想到社团的猜数字游戏-但是给钱是真过分了= ...
- 数学——每日一题11 1.18 反函数求导
2021考研数学每日一题1.18_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili https://www.bilibili.com/video/av84005688
- 北妈每日一题:JS从无序乱码找我要的数字!
点击上方"前端你别闹",关注并星标 喜欢我的都关注我了 北妈每日一题 我需要整齐排列 问题1:有这样一串杂乱无章的数据: [dahsidoai 213907;a oas198jdo ...
- 【寒假每日一题】剪绳子(个人练习)详细题解+推导证明(第六天)
文章目录 前言 题目 详细题解 写法1 O(nlogn)O(nlogn)O(nlogn) 推导证明 举一反三 总结 前言 今天终于出核酸检测的结果,还好大家都没事,不然怕是要封城了!!! 今天还是寒假 ...
- 【寒假每日一题】数字三角形(个人练习)详细题解+推导证明(第二天)
文章目录 前言 题目 详细题解 写法1 O ( n 2 ) O(n^2) O(n2) 推导证明 写法2 O ( n 2 ) O(n^2) O(n2) 推导证明 举一反三 总结 前言 昨天真是人生中奇葩 ...
- Java实现 LeetCode 389 找不同
389. 找不同 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = " ...
最新文章
- SQL INNER JOIN LEFT JOIN RIGHT JOIN 笛卡尔积
- 【深度学习】利用一些API进行图像数据增广
- 编译错误 fatal error C1010: unexpected end of file while looking for precompiled header directive
- 使用SAP云平台Portal service的前置条件
- SalesArea F4 help
- Swift中文教程(十八) 类型检查
- 12个超好用的IntelliJ IDEA 插件!你用过几个?
- android禁止电话功能,#Android# 启用“阻止模式”功能,避免半夜电话骚扰!
- [个人管理]学习超级搜索术知识点总结
- 又一个微信聊天机器人横空出世了,人人可用
- 玲珑3D与几何画板的比较
- RK987蓝牙机械键盘win和alt键互换
- 前端处理 token 时效性问题
- ArcGIS地理要素数据获取及地图制作
- linux 共享内存 出错,共享内存的std :: string给出了分段错误(linux)
- 基于图像的光照(Image-Based Lighting, IBL)概述
- 单、多分支结构的应用(有点复杂)
- 系统优化与lvs详解配置、haproxy
- 计算机硬件型号,怎样检测电脑硬件型号
- mysql中1146提示_Mysql数据库的使用总结之ERROR 1146 (42S02)