2019-03-10から1日間の記事一覧

文字列の回転

問題 2つの文字列str1, str2が与えられた時に、str2がstr1を回転させたものであるか調べる。 例えば str1 = "apple" str2 = "pplea" ならtrue である。 考え方 回転させたものなら str2 + str2としたものの中にstr1が含まれるはずである。 ただし、str1.len…

行列の変換

問題 M*N の行列において、(i, j)が0なら、その行iと列jを全て0にする。 考え方 (0, 0)から0の成分を見つけて、変換していくと全て0に変わってしまうので、まずは0の成分のある位置を格納する。 何個あるかわからないので、可変長配列(C++ではvector型)…

行列の回転

問題 N*Nの行列を90度回転させる 考え方 あまりたくさんのメモリを使いたくないので、1つの値だけを保持して回転させたい。 回転させると(i, j) -> (j, N-i)に移る。移った先を考えると、 (j, N-i)-> (N-i, N-j) (N-i, N-j) -> (N-j, i) (N-j, i) -> (i, j)…