Leetcode 389 Find the Difference



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:
e
 
第一种方法:使用java自带的contains函数 在string内对比查看单个字符是否出现过
 
 
  1. public char findTheDifference(String s, String t) {  
           for(int i =0;i<t.length;i++){
                 if(!s.contains(String.valueOf(t.toCharAt[i]))){
                           return t.toCharAt[i];
                  }
       }
    return0;


第二种方法:统计两个字符串中字母出现的次数

public char findTheDifference(String s, String t) {  
    int count1[] = new int[26];
<pre name="code" class="java" style="color: rgb(102, 102, 102); font-size: 15px; line-height: 26px;">    int count2[] = new int[26];

   for(int i =0;i<t.length;i++){
      count1[t.toCharAt[i]-'a']++;
   } 

  <pre name="code" class="java" style="color: rgb(102, 102, 102); font-size: 15px; line-height: 26px;"><pre name="code" class="java">for(int i =0;i<s.length;i++){
      count2[s.toCharAt[i]-'a']++;
   } 
 

 

for(i=0;i<26;i++){
if(count1[i]!=count2[i]<span style="font-family: 'Microsoft YaHei'; white-space: pre-wrap;">){</span>
<span style="font-family:Microsoft YaHei;"><span style="white-space: pre-wrap;">return (char) 'a'+i ;</span></span>
<span style="font-family:Microsoft YaHei;"><span style="white-space: pre-wrap;">}</span></span>
<span style="font-family:Microsoft YaHei;"><span style="white-space: pre-wrap;">return 0;</span></span>
<span style="font-family:Microsoft YaHei;"><span style="white-space: pre-wrap;">}</span></span>

第三种方法 :使用异或
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;  
        }  



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值