Back to Leetcode Go

389. Find the Difference

website/content/ChapterFour/0300~0399/0389.Find-the-Difference.md

1.7.11.4 KB
Original Source

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

Explanation:
'e' is the letter that was added.

题目大意

给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。

解题思路

  • 题目要求找出 t 字符串中比 s 字符串多出的一个字符。思路还是利用异或的性质,X^X = 0,将 s 和 t 依次异或,最终多出来的字符就是最后异或的结果。

代码

go

package leetcode

func findTheDifference(s string, t string) byte {
	n, ch := len(t), t[len(t)-1]
	for i := 0; i < n-1; i++ {
		ch ^= s[i]
		ch ^= t[i]
	}
	return ch
}


<div style="display: flex;justify-content: space-between;align-items: center;"> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0300~0399/0387.First-Unique-Character-in-a-String/">⬅️上一页</a></p> <p><a href="https://books.halfrost.com/leetcode/ChapterFour/0300~0399/0390.Elimination-Game/">下一页➡️</a></p> </div>