CodingBatで自然言語処理の勉強~その1~

codingBatのつまづいた所のメモです。

Warmup-1 

  • missing_char

Given a non-empty string and an int n, return a new string where the char at index n has been removed. The value of n will be a valid index of a char in the original string (i.e. n will be in the range 0..len(str)-1 inclusive).

ex)

missing_char(‘kitten’, 1) → ‘ktten’
missing_char(‘kitten’, 0) → ‘itten’
missing_char(‘kitten’, 4) → ‘kittn’

要するに、「二つ目の引数で与えられた数字番目の文字を抜かせ」ということだ。

sliceを使って、抜かした文字列の前と後ろで分けて、足してやれば良い

実行するとこんな感じ。

 

  • front_back

Given a string, return a new string where the first and last chars have been exchanged.

ex)
front_back(‘code’) → ‘eodc’
front_back(‘a’) → ‘a’
front_back(‘ab’) → ‘ba’

要するに、与えた文字列の最初と最後を入れ替えろということ

 

答えの文字列を「最後の文字」+「最後と最初以外の真ん中の文字列」+ 「最初の文字」と分割して考えているところがみそ。

実行するとこんな感じ。

 

  • front3

Given a string, we’ll say that the front is the first 3 chars of the string. If the string length is less than 3, the front is whatever is there. Return a new string which is 3 copies of the front.

ex)
front3(‘Java’) → ‘JavJavJav’
front3(‘Chocolate’) → ‘ChoChoCho’
front3(‘abc’) → ‘abcabcabc’

要は、与えられた文字列の前文字を三回繰り返すものを作成しろということ。

特に難しくない.

実行結果はこんな感じ。

 

Warmup-2

 

  • string_splosion

Given a non-empty string like “Code” return a string like “CCoCodCode”.

ex)
string_splosion(‘Code’) → ‘CCoCodCode’
string_splosion(‘abc’) → ‘aababc’
string_splosion(‘ab’) → ‘aab’

要は、与えられた文字列の「前1文字抜き出す+前2文字抜き出し+前3文字抜き出し…+最終文字まで抜き出す」 というのを繰り返した文字列を生成しろということ。

for文で最終文字(lenで長さを取得する)番目まで抜き出すのを繰り返し、それまでのを足していくだけ。

実行結果はこんな感じ。

 

  • last2
Given a string, return the count of the number of times that a substring length 2 appears in the string and also as the last 2 chars of the string, so “hixxxhi” yields 1 (we won’t count the end substring).

last2(‘hixxhi’) → 1
last2(‘xaxxaxaxx’) → 1
last2(‘axxxaaxx’) → 2

要は、最後2文字と同じものが「最後2文字をのぞいたところで、見つかればそれをカウントする」

以下の例であれば、「SS」は「1文字目+2文字目」「2文字目+3文字目」「3文字目+4文字目」と合計三回見つかるので、3が出力されれば正解である。

 

2文字のngramなので、与えられた文字列を2文字ごとに最終文字である「SS」とあっているか確認すれば良い。

実行結果がいかになれば良い。

 


Coding Bat PythonのWarmup1の途中からWarmup2の途中までやりました。

また勉強したら更新しようと思います。



スポンサードリンク

 

記事が役に立ったらシェア!

投稿者:

中村 俊

中村 俊

1993/09/04生まれ。機械系大学院を休学し、ベンチャーでインターンしている最中。直近では、デカルトの「方法序説」に感銘を受けた。 趣味:読書、web開発の勉強、異分野の論文読んだり、記事書いたり。 最終的には経営者か研究者になりたい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA