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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
mizti
January 10, 2013
650
0
Share
kaibun.pdf
mizti
January 10, 2013
More Decks by mizti
See All by mizti
CutSticks.pdf
mizti
0
650
Maze Maker
mizti
0
610
「銀将ご乱心」
mizti
0
980
paint.pdf
mizti
1
630
dfs1.pdf
mizti
0
610
問題1. 解答例
mizti
0
510
2012/11/16 問題1
mizti
0
540
Featured
See All Featured
Accessibility Awareness
sabderemane
0
93
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Building Adaptive Systems
keathley
44
3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.5k
The Invisible Side of Design
smashingmag
302
51k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
660
Believing is Seeing
oripsolob
1
100
Discover your Explorer Soul
emna__ayadi
2
1.1k
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文字 追加までを試して いく中で、回文に なったタイミングで 終了する