Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
kaibun.pdf
Search
mizti
January 10, 2013
0
640
kaibun.pdf
mizti
January 10, 2013
Tweet
Share
More Decks by mizti
See All by mizti
CutSticks.pdf
mizti
0
640
Maze Maker
mizti
0
600
「銀将ご乱心」
mizti
0
960
paint.pdf
mizti
1
620
dfs1.pdf
mizti
0
600
問題1. 解答例
mizti
0
500
2012/11/16 問題1
mizti
0
540
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
51
8.5k
Music & Morning Musume
bryan
46
6.6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Practical Orchestrator
shlominoach
189
11k
How to train your dragon (web standard)
notwaldorf
96
6.1k
Being A Developer After 40
akosma
90
590k
Speed Design
sergeychernyshev
32
1k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimizing for Happiness
mojombo
379
70k
Six Lessons from altMBA
skipperchong
28
3.9k
The Language of Interfaces
destraynor
158
25k
Transcript
問題.山本山の野望 (1): 上から読んでも山本山 下から読んでも山本山 我らが誇る海苔の老舗・山本山が海外進出を企んでいるようです。 しかしどうやら英語は苦手で、英語での社名や商品名開発に苦労している模様。 山本山の海外進出を成功させるために、まずはある文字列が回分かどうかを判 定するプログラムを作成してください。 ある入力文字列sが回文かどうかを判定す るプログラムを作ってください。
Sample Input とSample Output “Hakkaku” -> No “lol” -> Yes “annna” -> Yes “Anna” -> No 入力はすべてアルファベットの小文字です。 回文とは上から読んでも下から 読んでも同じ文のことです。 例えば、 “horror”は回文ではありません が、”sos”は回文です。
問題.山本山の野望 (2): なんとか海外進出を果たした山本山は、現地従業員のアイディアでたくさんの新商 品を開発しました。しかしなかなか商品名を覚えてもらえないようです。 専務「このままでは我社のアイデンティティを保つことは難しい」 専務「やっぱり商品名は回文になってないと」 というわけで、あなたは既存の商品名全部を速やかに回文にしないといけないこと になりました。変更は最小限に、という命令もあるため、 「既存の商品名にできるだけ短い文字列をくっつけて回文にする」必要があります Sample
Input -> Sample Output “hoge” -> “hogegoh” “sos” -> “sos” “koror” -> “kororok” “flip” -> “flipilf” ある入力文字列に対して、0文字以上 の何文字かを追加して回文を作るプロ グラムを作成してください。この際、追 加する文字列は最小に抑える必要が あります。 ある文字列を入力として、回文にした 文字列を出力してください。
解答例.山本山の野望 (1):回文性の判定プログラムを作成する 1. 先頭と末尾から文字列をとって比較する 2. 一致したら続ける 3. 一致しなかったらfalseを返す 最後まで一致したらtrueを返す 言語によって、文字列の後ろからn文字目を
取る方法が色々ありそうですね HorsoH HorsoH HorsoH
解答例.山本山の野望 (2):最小の文字列追加で対象文字列を回文にする mizが着目した2つのポイント 1. 最大でも元の文字列の反対文字列(から先頭を除く文字)を追 加すれば回文になる 2. もしn文字を追加して回文であるとすれば、追加された文字は 元の文字の頭からn文字の反対であるはず hogepiyo
yipegoh hogepiyo h hogepiyo oh hogepiyo goh このようにn-1文字 追加までを試して いく中で、回文に なったタイミングで 終了する