1
2
3
4
5
6
7
8
9
10
11
12
13
<code>Given two strings s and t which consist of only lowercase letters.</code>
<code>String t is generated by random shuffling string s and then add one more letter at a random position.</code>
<code>Find the letter that was added in t.</code>
<code>Example:</code>
<code>Input:</code>
<code>s = "abcd"</code>
<code>t = "abcde"</code>
<code>Output:</code>
<code>e</code>
<code>Explanation:</code>
<code>'e' is the letter that was added.</code>
題意:字元串s和t,t是s随記洗牌後多加了一個字母組成的,找出那個多加的字母。
14
15
16
<code>public</code> <code>class</code> <code>Solution {</code>
<code> </code><code>public</code> <code>char</code> <code>findTheDifference(String s, String t) {</code>
<code> </code><code>char</code><code>[] s1=s.toCharArray();</code>
<code> </code><code>int</code> <code>sum=</code><code>0</code><code>;</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i=</code><code>0</code><code>;i<s1.length;i++){</code>
<code> </code><code>sum+=s1[i];</code>
<code> </code><code>}</code>
<code> </code><code>char</code><code>[] s2=t.toCharArray();</code>
<code> </code><code>int</code> <code>sum1=</code><code>0</code><code>;</code>
<code> </code><code>for</code><code>(</code><code>int</code> <code>i=</code><code>0</code><code>;i<s2.length;i++){</code>
<code> </code><code>sum1+=s2[i];</code>
<code> </code><code>int</code> <code>cha=sum1-sum-</code><code>97</code><code>;</code>
<code> </code><code>return</code> <code>(</code><code>char</code><code>)(</code><code>'a'</code><code>+cha);</code>
<code> </code><code>}</code>
<code>}</code>
PS:我直接算的acsll碼。。。。。。
一開始因為char和int的類型強弱關系出了點麻煩。char類型低于int,是以把兩者放一起時會變為int,要加char進行強制轉換。
本文轉自 努力的C 51CTO部落格,原文連結:http://blog.51cto.com/fulin0532/1890581