LeetCode之Find the Difference

举报
chenyu 发表于 2021/07/26 23:28:13 2021/07/26
【摘要】 1、题目 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 mor...

1、题目

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:


   
  1. Input:
  2. s = "abcd"
  3. t = "abcde"
  4. Output:
  5. e
  6. Explanation:
  7. 'e' is the letter that was added.
please:
Input:
 
s = "a"
t = "aa"
 
Output:
a
 


2、代码实现


   
  1. public class Solution {
  2. public static char findTheDifference(String s, String t) {
  3. if (s == null || t.length() == 0)
  4. return t.charAt(0);
  5. if (t == null || t.length() == 0)
  6. return s.charAt(0);
  7. if (s == null && t == null)
  8. return 0;
  9. int[] a = new int[30];
  10. char[] tChars = t.toCharArray();
  11. char[] sChars = s.toCharArray();
  12. int sLength = s.length();
  13. int tLength = t.length();
  14. if (sLength > tLength) {
  15. for (int i = 0; i < sChars.length; i++) {
  16. if (a[sChars[i] - 97] != 0)
  17. a[sChars[i] - 97] = ++(a[sChars[i] - 97]);
  18. else
  19. a[sChars[i] - 97] = 2;
  20. }
  21. for (int i = 0; i < tChars.length; i++) {
  22. a[tChars[i] - 97] = --(a[tChars[i] - 97]);
  23. }
  24. } else {
  25. for (int i = 0; i < tChars.length; i++) {
  26. if (a[tChars[i] - 97] != 0)
  27. a[tChars[i] - 97] = ++(a[tChars[i] - 97]);
  28. else
  29. a[tChars[i] - 97] = 2;
  30. }
  31. for (int i = 0; i < sChars.length; i++) {
  32. a[sChars[i] - 97] = --(a[sChars[i] - 97]);
  33. }
  34. }
  35. for (int i = 0; i < 30; i ++) {
  36. if (a[i] >= 2) {
  37. return (char) (i + 97);
  38. }
  39. }
  40. return 0;
  41. }
  42. }

 


3、总结

看到2个字符串对比,我么可以先转化为字符数组,下表从A - 65 活着  a - 95  开始,也就是从下表0开始,然后要注意2个字符串里面可能包含同样的元素有几个的情况,相同就往上加,另外一个就减,但是他们最多相差1个字符,所以,我们可可以肯定,比我们一开始设置的大,也就是3,然后如果没有重复的数据,那么一样的就为1,肯定有一个为2.

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/67845937

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。