389. Find the Difference
선택한 UI 언어에 맞게 문제 텍스트를 러시아어에서 번역합니다. 코드는 변경하지 않습니다.
given две строки s и t.
문자열 t генерируется путем случайного перемешивания строки s с добавлением еще одной буквы в случайную позицию.
return букву, которая была добавлена в t.
예제:
Input: s = "abcd", t = "abcde"
Output: "e"
Explanation: 'e' is the letter that was added.
C# 해법
매칭됨/원본using System;
public class Solution {
public char FindTheDifference(string s, string t) {
char[] sortedS = s.ToCharArray();
char[] sortedT = t.ToCharArray();
Array.Sort(sortedS);
Array.Sort(sortedT);
int i = 0;
while (i < s.Length) {
if (sortedS[i] != sortedT[i]) {
return sortedT[i];
}
i += 1;
}
return sortedT[i];
}
}
C++ 해법
자동 초안, 제출 전 검토#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public char FindTheDifference(string s, string t) {
char[] sortedS = s.ToCharArray();
char[] sortedT = t.ToCharArray();
sort(sortedS.begin(), sortedS.end());
sort(sortedT.begin(), sortedT.end());
int i = 0;
while (i < s.size()) {
if (sortedS[i] != sortedT[i]) {
return sortedT[i];
}
i += 1;
}
return sortedT[i];
}
}
Java 해법
매칭됨/원본class Solution {
public char findTheDifference(String s, String t) {
char[] sortedS = s.toCharArray();
char[] sortedT = t.toCharArray();
Arrays.sort(sortedS);
Arrays.sort(sortedT);
int i = 0;
while (i < s.length()) {
if (sortedS[i] != sortedT[i]) {
return sortedT[i];
}
i += 1;
}
return sortedT[i];
}
}
JavaScript 해법
매칭됨/원본var findTheDifference = function(s, t) {
let sortedS = s.split('').sort();
let sortedT = t.split('').sort();
for (let i = 0; i < sortedS.length; i++) {
if (sortedS[i] !== sortedT[i]) {
return sortedT[i];
}
}
return sortedT[sortedS.length];
};
Python 해법
매칭됨/원본class Solution:
def findTheDifference(self, s: str, t: str) -> str:
sorted_s = sorted(s)
sorted_t = sorted(t)
for i in range(len(sorted_s)):
if sorted_s[i] != sorted_t[i]:
return sorted_t[i]
return sorted_t[len(sorted_s)]
Go 해법
매칭됨/원본package main
import (
"sort"
"strings"
)
func findTheDifference(s string, t string) byte {
sortedS := strings.Split(s, "")
sortedT := strings.Split(t, "")
sort.Strings(sortedS)
sort.Strings(sortedT)
for i := 0; i < len(sortedS); i++ {
if sortedS[i] != sortedT[i] {
return sortedT[i][0]
}
}
return sortedT[len(sortedS)][0]
}
Algorithm
Отсортируйте строки s и t.
Итерируйте по длине строк и сравнивайте их посимвольно. Это позволяет проверить, присутствует ли текущий символ строки t в строке s.
Как только встретится символ, который есть в строке t, но отсутствует в строке s, мы найдем лишний символ, который скрывала 문자열 t все это время.
😎
Vacancies for this task
활성 채용 with overlapping task tags are 표시됨.
아직 활성 채용이 없습니다.