leetcode算法——389. Find the Difference(基于JAVA)
来源:互联网 发布:不写代码编程 编辑:程序博客网 时间:2024/06/10 14:05
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.翻译:
给定两个只包含小写字母的字符串s和t。字符串t是由随机顺序的字符串s,然后再添加一个字母在一个随机位置。在t找到添加的字母。
解题思路1:
可以直接用java自带的contains函数判断s中是否有这个字母。
但是这个方法仅限于添加的这个字母之前在字符串s中没有出现过(即就是针对题目给的test设计的一个投机取巧的例子),所以很显然不行。但是还是贴出来,记录一下自己的思路历程!
return的那个‘1’是随便定义的。
public char findTheDifference(String s, String t) {for(int i = 0; i < t.length(); i++){ s.contains(String.valueOf(t.charAt(i))); if( !s.contains(String.valueOf(t.charAt(i)))){ return t.charAt(i); } } return '1'; }
解题思路2:
参考别人的思路发现可以用两个计数数组统计s和t的字母出现次数,不一样的那个就是答案。这个解题思路可以参考383.Ransom Note的思路。
public char findTheDifference(String s, String t) { int count1[] = new int[26]; int count2[] = new int[26]; int i; for (i = 0; i < s.length(); i++) { count1[s.charAt(i)-'a']++; } for (i = 0; i < t.length(); i++) { count2[t.charAt(i)-'a']++; } for (i = 0; i < 26; i++) { if (count1[i] != count2[i]) return (char) ('a' + i); } return 0; }
具体情况如下:
解题思路3:
public char findTheDifference(String s, String t) { char tmp = 0x00; for(int i=0;i<s.length();i++) tmp =(char)( tmp ^ s.charAt(i)); for(int i=0;i<t.length();i++) tmp = (char)(tmp ^ t.charAt(i)); return tmp; }
情况跟上面差不多。
0 0
- leetcode算法——389. Find the Difference(基于JAVA)
- Leetcode——389. Find the Difference
- LeetCode—389. Find the Difference
- 【python】【leetcode】【算法题目389—Find the Difference】
- LeetCode-389. Find the Difference (Java)
- 算法题——Find the Difference(JAVA)
- Find the Difference —— leetcode
- 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
- CAD制图中如何合并两条线为一条线
- iOS图片加载速度极限优化—FastImageCache解析
- 1035. Password (20)
- php html 模板输出 excel 例子
- wr703n刷openwrt智能控制--远程烟雾报警器
- leetcode算法——389. Find the Difference(基于JAVA)
- DataSet连接数据库
- php使用openssl来实现非对称加密
- OBS源码阅读笔记(四)--视频采集显示
- 设置Suse Linux的自启动脚本
- RPCA学习笔记
- MYSQL开发性能研究——INSERT,REPLACE,INSERT-UPDATE性能比较
- easyui更换结构树的默认图标
- JVM介绍