Leetcodeやっていき(無料Easy編)
とりあえず無料のEasyをすべて解くのを目指す。 ちゃんとテストも書いていく。
771. Jewels and Stones
与えられた文字列の中から、対象の文字列が何個あるか数える問題。 forで一文字ずつcount()を使用して確認していく。 for文も通常の書き方より、リスト内包表記を使用した方が早いし、短い。 最後はsum()で合計を出せばよい。
class Solution: def numJewelsInStones(self, J: str, S: str) -> int: return sum(S.count(j) for j in J)
ここで覚えるやつ
1342. numberOfSteps
偶数なら2で割って、それ以外なら1で引いた数の合計を求める問題。
そのまま解いた。
class Solution: def numberOfSteps(self, num: int) -> int: i = 0 while num > 0: if num % 2 == 0: num /= 2 i += 1 else: num -= 1 i += 1 return i
ここで覚えるやつ
- f-string
- f-string他の使い方
- bin()
- 後置if文
1108 Defanging an IP Address
該当の文字列を置き換えればよい問題。
class Solution: def defangIPaddr(self, address: str) -> str: return '[.]'.join(address.split('.'))
412 Fizz Buzz
fizzbuzzの結果をlistに追加していく問題。
class Solution: def fizzBuzz(self, n: int) -> str: result = [] for i in range(1, n + 1): if (i % 3) == 0 and (i % 5) == 0: result.append("FizzBuzz") elif (i % 3) == 0: result.append("Fizz") elif (i % 5) == 0: result.append("Buzz") else: result.append(str(i)) return result
1365 How Many Numbers Are Smaller Than the Current Number
sorted()でiterableの要素を並べ替えた新たなリストを返し、index()で要素番号を出力する。
class Solution: def smallerNumbersThanCurrent(self, nums: List[int]) -> List[int]: return [sorted(nums).index(i) for i in nums]