[LeetCode]389. Find the Difference
来源:互联网 发布:2017院士增选 知乎 编辑:程序博客网 时间:2024/05/18 08:40
依旧是利用a^b^b==a的bit manipulation的特性。另一个方法则利用了将字母作为数组下标的方法。(从本质上来讲,在计算机里面,可以认为char就是int了,就是说可以把char当作int来用,如,作为数组下标。)
Given two strings s and t which consist of only lowercase letters.
String t is generated by random shuffling string s and then add one more letter at a random position.
Find the letter that was added in t.
Example:
Input:s = "abcd"t = "abcde"Output:eExplanation:'e' is the letter that was added.
方法一:用HashMap
public class Solution { public char findTheDifference(String s, String t) { //char res=''; Map<Character,Integer> map = new HashMap<>(); for(char c : s.toCharArray()) map.put(c,map.getOrDefault(c,0)+1); for(char c : t.toCharArray()) { map.put(c,map.getOrDefault(c,0)-1); if(map.get(c)==-1) return c; } return 0; }}
方法二:用数组。本质上和方法一相同。
for (int i = 0; i < 26; i++) alpha[i] = 0; for (char c : s.toCharArray()) alpha[ c - 'a' ]++; for (char c : t.toCharArray()) { //could do decrement first, then check but yeah if (--alpha[c - 'a'] < 0) return c; } return 0;
一定要学会 arr[ c - 'a' ]++ 这种用法。
方法三:异或。a^b^b==a
public char findTheDifference(String s, String t) {char c = 0;for (int i = 0; i < s.length(); ++i) {c ^= s.charAt(i);}for (int i = 0; i < t.length(); ++i) {c ^= t.charAt(i);}return c;}
阅读全文
0 0
- LeetCode : 389. Find the Difference
- Leetcode 389. Find the Difference
- 【leetcode】389. Find the Difference
- Leetcode 389. Find the Difference
- LeetCode 389. Find the Difference
- LeetCode 389. Find the Difference
- [LeetCode]389. Find the Difference
- [LeetCode]--389. Find the Difference
- leetcode 389. Find the Difference
- LeetCode 389. Find the Difference
- LeetCode 389. Find the Difference
- leetcode 389. Find the Difference
- 389.[LeetCode]Find the Difference
- 【LeetCode】 389. Find the Difference
- [LeetCode]389. Find the Difference
- leetcode-389. Find the Difference
- Leetcode 389. Find the Difference
- LeetCode 389. Find the Difference
- Rancher通过Aliyun-slb服务对接阿里云SLB教程
- 做微信登录前必须先了解的事情
- 新手也能用docker搭建PHP环境
- 【C++】【LeetCode】96. Unique Binary Search Trees
- Molten 功能简介以及使用指南
- [LeetCode]389. Find the Difference
- linux系统下安装两个或多个tomcat
- “混合高清”技术设想
- python基础学习之变量和字符串
- 周考一MinaActivity
- Qt5编译好的oracle驱动下载
- 6.Jfinal分页实例
- 【Java】特定期格式(一)
- TCP标志位