はじめに
LeetCodeの問題を解答します。
なるべく、問題の和訳と詳細なコメントを書いています。
余裕があれば、複数のアプローチの解答と、実際の面接を想定して英語での解法やコメントを書いています。
様々なカテゴリの問題をランダムにあたる方法も良いですが、
二分探索、連結リストなど、テーマを絞って集中的に解いた方が練習しやすい方は以下の記事が有用です。
テーマごとに問題を分類しました。
LeeetCodeの問題をアルゴリズムとデータ構造による分類しました。
また、LeetCodeではAtcoderと違ってクラスと関数を定義して解答します。
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめています。
はじめてLeetCodeに触れる方はこちらの記事も役に立つと思います。
ポイント
-
- 文字列の扱い
- スライス
この記事で得られること
-
- 文字列操作の練習
- スライスの練習
詳細
問題
原文
You are given two strings
word1
andword2
. Merge the strings by adding letters in alternating order, starting withword1
. If a string is longer than the other, append the additional letters onto the end of the merged string.Return the merged string.
Example 1:
123456 Input: word1 = "abc", word2 = "pqr"Output: "apbqcr"Explanation: The merged string will be merged as so:word1: a b cword2: p q rmerged: a p b q c rExample 2:
123456 Input: word1 = "ab", word2 = "pqrs"Output: "apbqrs"Explanation: Notice that as word2 is longer, "rs" is appended to the end.word1: a bword2: p q r smerged: a p b q r sExample 3:
123456 Input: word1 = "abcd", word2 = "pq"Output: "apbqcd"Explanation: Notice that as word1 is longer, "cd" is appended to the end.word1: a b c dword2: p qmerged: a p b q c d
Constraints:
1 <= word1.length, word2.length <= 100
word1
andword2
consist of lowercase English letters.
内容(和訳)
※正しくない可能性があります。
解答
解答1:Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Solution: def mergeAlternately(self, word1: str, word2: str) -> str: merged_string = "" if len(word1) == len(word2): for i in range(len(word1)): merged_string += word1[i] merged_string += word2[i] return merged_string elif len(word1) > len(word2): for i in range(len(word2)): merged_string += word1[i] merged_string += word2[i] return merged_string + word1[i+1:] else: for i in range(len(word1)): merged_string += word1[i] merged_string += word2[i] return merged_string + word2[i+1:] |
word1とword2の長さが同じ場合と、それぞれが長い場合の3つの場合に応じて同じ処理を行って位jます。
word1の1文字目、word2の1文字目、word2の2文字目、word2の2文字目・・・と結合します。
どちらか一方が長い場合は、残った文字列をまとめて結合します。
終わりに
補足・参考・感想
問題を分類しました。テーマごとに集中して問題を解くことができます。
LeeetCodeの問題をアルゴリズムとデータ構造による分類
LeetCodeに特有の内容など、知っておくと役に立つかもしれないことをまとめました。
疑問が解決した方は他の問題もどうぞ
前:98. Validate Binary Search Tree
コメント