常に意識すること
-
触れてきた技術について、深いところまで理解しているか
- indexを貼ると早くなります。 ⇒ なぜ?
- 過去触れてきた概念に関して浅い理解をしている人は、今後も浅い理解で仕事をすると考える。
複雑な概念を理解して説明できるようにする
アルゴリズム
二分探索木 (深さ優先探索でL以上R以下を求める)
# 再帰関数
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def rangeSumBST(self, root: TreeNode, L: int, R: int) -> int:
valid_vals = []
def search(root):
if root.val >= L and root.val<=R:
valid_vals.append(root.val)
if root.left:
search(root.left)
if root.right:
search(root.right)
search(root)
return sum(valid_vals)
標準ライブラリ
進数変換
# 10進数を2,8,16進数に変換する
x = 10
print(bin(x))
print(oct(x))
print(hex(x))
# 2,8,16進数を10進数に変換する
print(int('10100', 2))
print(int('24', 8))
print(int('14', 16))
大文字・小文字
s_org = 'pYThon proGramminG laNguAge'
s_org.upper()
# PYTHON PROGRAMMING LANGUAGE
s_org.lower()
# python programming language
zipはfor文と一緒に使う
class Solution:
def busyStudent(self, startTime: List[int], endTime: List[int], queryTime: int) -> int:
cnt = 0
for m, n in zip(startTime, endTime):
if m <= queryTime and n >= queryTime:
cnt += 1
return cnt
リストの昇順・降順
l1 = ['d', 'b', 'c', 'a']
l2 = sorted(l1)
l2 = sorted(l1, reverse=True)
print(l2) # ['d', 'c', 'b', 'a']
リストが空か判定
a = []
if not a:
print("リストは空です")
mathライブラリ
ceiling function (天井関数)
実数xに対してx以上の最小の整数を求める
from math import ceil
c = ceil(r)