給定兩個字符串 s 和 t,它們只包含小寫字母。 字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。 請找出在 t 中被添加的字母。


給定兩個字符串 s 和 t,它們只包含小寫字母。字符串 t 由字符串 s 隨機重排,然后在隨機位置添加一個字母。請找出在 t 中被添加的字母。

示例:
  輸入:
    s = "abcd"
    t = "abcde"
  輸出:
    e

解題思路:該題的解法和上一篇我們解決問題的思路一樣,同樣此題我們需要定義兩個數組arr1和arr2分別存儲字符串s和t每一個字符出現的次數,遍歷統計字符串每一個字符出現的次數,最后遍歷,找出arr1和arr2不相等,不相等的坐標存儲的就是字符串t中添加的字符

代碼如下:

public static char findTheDifference(String s,String t) { //定義兩個數組分別存儲字符串s,t每個字符出現次數 int[] arr1 = new int[26]; int[] arr2 = new int[26]; //轉字符 char[] chars1 = s.toCharArray(); char[] chars2 = t.toCharArray(); //兩個數組長度 int len1 = chars1.length; int len2 = chars2.length; //將字符串s的每一字符出現次數添加到對應字符位置中,沒出現一次進行加1操作 for(int i = 0;i<len1;i++) { arr1[chars1[i] - 'a'] += 1; } for(int i = 0;i<len2;i++) { arr2[chars2[i] - 'a'] += 1; } //遍歷數組,找出arr1和arr2中值不相等的,就是要找的對應字符位置,將其轉換輸出 for(int i = 0;i<26;i++) { if(arr1[i]!=arr2[i]) { return (char) (i+97); } } return '0'; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM