2017-01-01から1年間の記事一覧
今回も説明が難しいですが、一番大きな長方形の面積を返す問題。 iterableにリストの数字を前から選ぶ (num) 選択された数字より大きな数字が右に何個連続しているか調べる (a) 反対方向にも調べる。(b) num*( a - b + 1)が面積 という方向性で考えました。 …
今回は与えられたテキスト内でもっとも長い回文を探します。 前から一文字ずつ判定 同じ文字で切れるところを探し 反転しても一致するかを調べる という方向性でやりました。 def longest_palindromic(test): ntest = [(i,test[i]) for i in range(len(test)…
正方形のMatrixの中で4つ以上連続するものがあればTrue、なければFalseを返す関数を作ります。 行内か右下がりの方向で探して、次にMatrixを90度回転させてもう一回探すという方向性でプログラムを書いてみました。 def checkio1(test): for i in range(len(…
2進法での距離を求める問題。Hamming Distanceというらしい。 106 (219< 106 < 220) までを考慮したので良いということだったので、 def hamming_d(numb): ans = [] for i in reversed(range(0, 21)): if numb / 2**i >=1: ans.append(1) numb = numb - 2**i…
守られているポーンの数を数えるという課題。 説明しにくいので、適当に とりあえず、特定のポーンを守れる場所に別のポーンがあるかどうかを判別 ある場合だけsafe ポーンとして数えるというアルゴリズムで def safe_pawns(pawns): safe = 0 for i1 in pawn…
'aaabbbccssafa' -> 3 アルファベットがもっとも長く連続する長さを返す関数を作る。 直線的にやってみます。 def long_repeat(line): if line=='': return(0) else: count=1 count_chr=[1] for i in range(1,len(line)): if line[i-1]==line[i]: count +=1 …
テキストの中にwords(辞書)のうち何個含まれているか。 count_words("How aresjfhdskfhskd you?", {"how", "are", "you", "hello"}) == 3 re.searchを使って、有った場合だけ数える。とても直線的 import re def count_words(text, words): x = 0 for i in w…
今回は●Xゲームの勝敗決め データの与えられ方は data = ([ "O.O", "XX.", "XOX"]) で勝敗を決定する。 行列を使ってみた。 def checkio(data): mapping = {'X': '1', 'O':'-1', '.':'0'} text = [int(i.translate(str.maketrans(mapping))) for i in ''.joi…
問題: 数字の入ったリストから、重複がないもののみを消す。 [1,2,3,4,5,6,4,2,5] => [2,4,5,4,2,5] #1,3,6が消去 from collections import Counter import numpy as np def checkio(data): count = Counter(data) [x for (x, y) in count.items() if y == …
pythonのプログラミング勉強をcheckioというHPの問題を作って勉強していきます。やったことを自分のメモ用に残しておきます。 お題 textの中に含まれるアルファベットの中で最も数が多いものを返す関数”checkio"を作れ 例) "mAkoshark!!!!"だったら、"a" ポ…