0
0

LeetCodeの練習メモ

Last updated at Posted at 2023-11-26

LeetCodeのEasy問題を解いていくテスト

11/27
1.two sum
問題文
image.png
日本語
整数の配列 nums と整数の target が与えられた場合、合計が target になる二つの数のインデックスを返します。

各入力には必ず一つの解があると仮定しても構いませんが、同じ要素を二度使用することはできません。

答えは任意の順序で返すことができます。

回答例

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        hashmap = {}

        for i in range(len(nums)):
            num = nums[i]
            complement = target - num
            if num in hashmap:
                return [hashmap[num],i]
            else:
                hashmap[complement] = i
  1. Palindrome Number
    image.png
    逆数の一致
class Solution:
    def isPalindrome(self, x: int) -> bool:
        
        if str(x) == str(x)[::-1]:
            return True
        else:
            return False

11/28
13. Roman to Integer
問題
ローマ数字は7種類の記号で表される: I、V、X、L、C、D、M。

記号 値
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例えば、2はローマ数字でIIと書き、2つの1を足しただけである。12はXIIと書き、これは単にX+IIである。27はXXVIIと書き、これはXX+V+IIである。

ローマ数字は通常、左から右に大きいものから小さいものへと書く。しかし、4を表す数字はIIIIではない。代わりに4はIVと書く。1が5の前にあるので、それを引くと4となる。同じ原理が数字の9にも当てはまり、IXと書く。引き算が使われる例は6つある:

IをV(5)とX(10)の前に置くと4と9になる。
XをL(50)とC(100)の前に置くと、40と90になる。
CをD(500)とM(1000)の前に置くと、400と900になる。
ローマ数字が与えられたら、それを整数に変換しなさい。

image.png

class Solution:
    def romanToInt(self, s: str) -> int:
        roman={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}
        number=0
        for i in range(len(s)-1):
            if roman[s[i]] < roman[s[(i+1)]]:
                number-=roman[s[i]]
            else:
                number+=roman[s[i]]
        return number+roman[s[-1]]
  1. Valid Parentheses
    問題
    文字 '(', ')', '{', '}', '[', ']' を含む文字列 s が与えられたとき、その入力文字列が有効かどうかを判定する。

入力文字列が有効であるのは、以下の場合である:

開き括弧は、同じ種類の括弧で閉じなければならない。
開き括弧は正しい順序で閉じなければならない。
どの閉じ括弧にも、対応する同じ型の開き括弧がある。
image.png

class Solution:
    def isValid(self, s: str) -> bool:
        opcl = dict(('()','[]','{}'))
        stack = []

        for idx in s:
            if idx in '([{':
                stack.append(idx)
            elif len(stack) == 0 or idx != opcl[stack.pop()]:
                return False
        return len(stack) == 0
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0