Created
April 28, 2014 08:59
-
-
Save doraTeX/11366112 to your computer and use it in GitHub Desktop.
結城浩さんの CodeIQ の アルゴリズム問題「スペーストーキー問題」( https://codeiq.jp/ace/yuki_hiroshi/q839 )をTeX言語(TeX on LaTeX)で解きました。TeX Liveなどで pdflatex spacetalky とすればコンパイルできます。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| %! pdflatex speacetalky | |
| \documentclass{article} | |
| \usepackage{pgffor} | |
| \usepackage{xstring} | |
| \usepackage{ifthen} | |
| \setlength\parindent{0pt} | |
| \makeatletter | |
| \newif\ifsuccess | |
| \def\Output#1{\typeout{#1}#1\par} | |
| \def\alphRepeat#1#2{% | |
| \edef\loopNum{% | |
| \if#2a1\fi | |
| \if#2b2\fi | |
| \if#2c3\fi | |
| \if#2d4\fi | |
| \if#2e5\fi | |
| \if#2f6\fi | |
| \if#2g7\fi | |
| \if#2h8\fi | |
| \if#2i9\fi | |
| \if#2j10\fi | |
| \if#2k11\fi | |
| \if#2l12\fi | |
| \if#2m13\fi | |
| \if#2n14\fi | |
| \if#2o15\fi | |
| \if#2p16\fi | |
| \if#2q17\fi | |
| \if#2r18\fi | |
| \if#2s19\fi | |
| \if#2t20\fi | |
| \if#2u21\fi | |
| \if#2v22\fi | |
| \if#2w23\fi | |
| \if#2x24\fi | |
| \if#2y25\fi | |
| \if#2z26\fi | |
| }% | |
| \foreach \i in {1,...,\loopNum}{% | |
| \xdef\result{\result#1}% | |
| }% | |
| \gdef\prevchar{#1}% | |
| \gdef\prevtimes{#2}% | |
| } | |
| \def\solve#1{% | |
| \StrLen{#1}[\len]% | |
| \ifodd\len | |
| \Output{X:#1}% | |
| \else | |
| \gdef\result{}% | |
| \gdef\prevchar{X}% | |
| \gdef\prevtimes{X}% | |
| \successtrue | |
| \def\target{#1}% | |
| \@solve#1\relax\relax | |
| \fi | |
| } | |
| \def\@solve#1#2{% | |
| \ifx#1\relax | |
| \ifsuccess | |
| \Output{\result:\target}% | |
| \else | |
| \Output{X:\target}% | |
| \fi | |
| \let\@next\relax | |
| \else | |
| \ifthenelse{\equal{#1}{\prevchar}\AND\NOT\equal{\prevtimes}{z}}{% | |
| \successfalse | |
| }{% | |
| \alphRepeat{#1}{#2}% | |
| }% | |
| \let\@next\@solve | |
| \fi | |
| \@next | |
| } | |
| \makeatother | |
| \begin{document} | |
| \solve{accept} | |
| \solve{add} | |
| \solve{advise} | |
| \solve{afford} | |
| \solve{agree} | |
| \solve{alert} | |
| \solve{analyse} | |
| \solve{announce} | |
| \solve{answer} | |
| \solve{appear} | |
| \solve{arrange} | |
| \solve{arrive} | |
| \solve{ask} | |
| \solve{attach} | |
| \solve{attack} | |
| \solve{attempt} | |
| \solve{attend} | |
| \solve{attract} | |
| \solve{avoid} | |
| \solve{awake} | |
| \solve{back} | |
| \solve{bake} | |
| \solve{balance} | |
| \solve{ban} | |
| \solve{bang} | |
| \solve{bat} | |
| \solve{bathe} | |
| \solve{battle} | |
| \solve{be} | |
| \solve{beam} | |
| \solve{behave} | |
| \solve{bleach} | |
| \solve{bless} | |
| \solve{blind} | |
| \solve{blow} | |
| \solve{blush} | |
| \solve{boast} | |
| \solve{boil} | |
| \solve{bolt} | |
| \solve{bomb} | |
| \solve{book} | |
| \solve{bore} | |
| \solve{borrow} | |
| \solve{bounce} | |
| \solve{bow} | |
| \solve{brake} | |
| \solve{breathe} | |
| \solve{broadcast} | |
| \solve{bruise} | |
| \solve{brush} | |
| \solve{bump} | |
| \solve{bury} | |
| \solve{buzz} | |
| \solve{calculate} | |
| \solve{call} | |
| \solve{carry} | |
| \solve{carve} | |
| \solve{cause} | |
| \solve{challenge} | |
| \solve{change} | |
| \solve{charge} | |
| \solve{chase} | |
| \solve{cheat} | |
| \solve{check} | |
| \solve{chew} | |
| \solve{chop} | |
| \solve{clean} | |
| \solve{clear} | |
| \solve{clip} | |
| \solve{close} | |
| \solve{coach} | |
| \solve{coil} | |
| \solve{collect} | |
| \solve{colour} | |
| \solve{comb} | |
| \solve{command} | |
| \solve{communicate} | |
| \solve{compare} | |
| \solve{compete} | |
| \solve{complete} | |
| \solve{concentrate} | |
| \solve{concern} | |
| \solve{confess} | |
| \solve{consider} | |
| \solve{consist} | |
| \solve{contain} | |
| \solve{continue} | |
| \solve{correct} | |
| \solve{cough} | |
| \solve{count} | |
| \solve{cover} | |
| \solve{crack} | |
| \solve{crash} | |
| \solve{cross} | |
| \solve{crush} | |
| \solve{cry} | |
| \solve{cure} | |
| \solve{curl} | |
| \solve{curve} | |
| \solve{cycle} | |
| \solve{dam} | |
| \solve{damage} | |
| \solve{dare} | |
| \solve{deceive} | |
| \solve{decide} | |
| \solve{decorate} | |
| \solve{delay} | |
| \solve{delight} | |
| \solve{deliver} | |
| \solve{depend} | |
| \solve{describe} | |
| \solve{deserve} | |
| \solve{destroy} | |
| \solve{develop} | |
| \solve{disappear} | |
| \solve{disapprove} | |
| \solve{disarm} | |
| \solve{discover} | |
| \solve{dislike} | |
| \solve{divide} | |
| \solve{double} | |
| \solve{doubt} | |
| \solve{drain} | |
| \solve{draw} | |
| \solve{dream} | |
| \solve{drive} | |
| \solve{drop} | |
| \solve{drown} | |
| \solve{drum} | |
| \solve{dry} | |
| \solve{dust} | |
| \solve{embarrass} | |
| \solve{employ} | |
| \solve{empty} | |
| \solve{encourage} | |
| \solve{end} | |
| \solve{enjoy} | |
| \solve{enter} | |
| \solve{escape} | |
| \solve{examine} | |
| \solve{excite} | |
| \solve{excuse} | |
| \solve{exercise} | |
| \solve{exist} | |
| \solve{expand} | |
| \solve{expect} | |
| \solve{explain} | |
| \solve{explode} | |
| \solve{extend} | |
| \solve{fade} | |
| \solve{fail} | |
| \solve{fancy} | |
| \solve{fasten} | |
| \solve{fear} | |
| \solve{feel} | |
| \solve{fence} | |
| \solve{fight} | |
| \solve{file} | |
| \solve{find} | |
| \solve{fit} | |
| \solve{flap} | |
| \solve{flash} | |
| \solve{float} | |
| \solve{flood} | |
| \solve{flow} | |
| \solve{flower} | |
| \solve{fly} | |
| \solve{follow} | |
| \solve{fool} | |
| \solve{forget} | |
| \solve{found} | |
| \solve{frighten} | |
| \solve{fry} | |
| \solve{gather} | |
| \solve{gaze} | |
| \solve{get} | |
| \solve{glow} | |
| \solve{glue} | |
| \solve{go} | |
| \solve{grab} | |
| \solve{grate} | |
| \solve{grease} | |
| \solve{greet} | |
| \solve{grip} | |
| \solve{groan} | |
| \solve{grow} | |
| \solve{guarantee} | |
| \solve{guess} | |
| \solve{guide} | |
| \solve{hammer} | |
| \solve{handle} | |
| \solve{hang} | |
| \solve{happen} | |
| \solve{harass} | |
| \solve{hate} | |
| \solve{heal} | |
| \solve{heap} | |
| \solve{heat} | |
| \solve{help} | |
| \solve{hide} | |
| \solve{hit} | |
| \solve{hook} | |
| \solve{hop} | |
| \solve{hope} | |
| \solve{hover} | |
| \solve{hug} | |
| \solve{hum} | |
| \solve{hunt} | |
| \solve{hurry} | |
| \solve{identify} | |
| \solve{ignore} | |
| \solve{impress} | |
| \solve{improve} | |
| \solve{include} | |
| \solve{increase} | |
| \solve{influence} | |
| \solve{inject} | |
| \solve{instruct} | |
| \solve{intend} | |
| \solve{interest} | |
| \solve{interfere} | |
| \solve{interrupt} | |
| \solve{introduce} | |
| \solve{invent} | |
| \solve{irritate} | |
| \solve{jail} | |
| \solve{jam} | |
| \solve{jog} | |
| \solve{join} | |
| \solve{joke} | |
| \solve{judge} | |
| \solve{juggle} | |
| \solve{jump} | |
| \solve{keep} | |
| \solve{kick} | |
| \solve{kill} | |
| \solve{kiss} | |
| \solve{kneel} | |
| \solve{knit} | |
| \solve{knock} | |
| \solve{knot} | |
| \solve{label} | |
| \solve{land} | |
| \solve{last} | |
| \solve{launch} | |
| \solve{learn} | |
| \solve{let} | |
| \solve{level} | |
| \solve{lie} | |
| \solve{lighten} | |
| \solve{like} | |
| \solve{listen} | |
| \solve{live} | |
| \solve{load} | |
| \solve{long} | |
| \solve{look} | |
| \solve{lose} | |
| \solve{love} | |
| \solve{make} | |
| \solve{man} | |
| \solve{manage} | |
| \solve{march} | |
| \solve{mark} | |
| \solve{marry} | |
| \solve{match} | |
| \solve{matter} | |
| \solve{mean} | |
| \solve{measure} | |
| \solve{meddle} | |
| \solve{meet} | |
| \solve{melt} | |
| \solve{memorize} | |
| \solve{mess} | |
| \solve{milk} | |
| \solve{mine} | |
| \solve{miss} | |
| \solve{mix} | |
| \solve{moan} | |
| \solve{mourn} | |
| \solve{muddle} | |
| \solve{nail} | |
| \solve{need} | |
| \solve{nest} | |
| \solve{nod} | |
| \solve{note} | |
| \solve{notice} | |
| \solve{number} | |
| \solve{obey} | |
| \solve{object} | |
| \solve{observe} | |
| \solve{obtain} | |
| \solve{offend} | |
| \solve{offer} | |
| \solve{open} | |
| \solve{overflow} | |
| \solve{owe} | |
| \solve{own} | |
| \solve{pack} | |
| \solve{paddle} | |
| \solve{paint} | |
| \solve{park} | |
| \solve{pass} | |
| \solve{paste} | |
| \solve{pat} | |
| \solve{pause} | |
| \solve{peck} | |
| \solve{pedal} | |
| \solve{peep} | |
| \solve{perform} | |
| \solve{permit} | |
| \solve{phone} | |
| \solve{pick} | |
| \solve{pinch} | |
| \solve{pine} | |
| \solve{place} | |
| \solve{plan} | |
| \solve{plant} | |
| \solve{please} | |
| \solve{point} | |
| \solve{poke} | |
| \solve{polish} | |
| \solve{pop} | |
| \solve{post} | |
| \solve{pour} | |
| \solve{practise} | |
| \solve{pray} | |
| \solve{preach} | |
| \solve{precede} | |
| \solve{prefer} | |
| \solve{prepare} | |
| \solve{present} | |
| \solve{press} | |
| \solve{pretend} | |
| \solve{prevent} | |
| \solve{prick} | |
| \solve{print} | |
| \solve{produce} | |
| \solve{program} | |
| \solve{promise} | |
| \solve{pull} | |
| \solve{pump} | |
| \solve{punch} | |
| \solve{puncture} | |
| \solve{punish} | |
| \solve{push} | |
| \solve{question} | |
| \solve{queue} | |
| \solve{radiate} | |
| \solve{rain} | |
| \solve{receive} | |
| \solve{recognise} | |
| \solve{record} | |
| \solve{reduce} | |
| \solve{regret} | |
| \solve{reign} | |
| \solve{relax} | |
| \solve{release} | |
| \solve{rely} | |
| \solve{remember} | |
| \solve{remind} | |
| \solve{remove} | |
| \solve{repair} | |
| \solve{repeat} | |
| \solve{replace} | |
| \solve{reply} | |
| \solve{report} | |
| \solve{reproduce} | |
| \solve{request} | |
| \solve{rescue} | |
| \solve{return} | |
| \solve{rhyme} | |
| \solve{risk} | |
| \solve{rob} | |
| \solve{rock} | |
| \solve{roll} | |
| \solve{rot} | |
| \solve{ruin} | |
| \solve{rule} | |
| \solve{rush} | |
| \solve{sack} | |
| \solve{satisfy} | |
| \solve{save} | |
| \solve{saw} | |
| \solve{say} | |
| \solve{scare} | |
| \solve{scold} | |
| \solve{scorch} | |
| \solve{scrape} | |
| \solve{scratch} | |
| \solve{scream} | |
| \solve{screw} | |
| \solve{scribble} | |
| \solve{scrub} | |
| \solve{seal} | |
| \solve{search} | |
| \solve{separate} | |
| \solve{settle} | |
| \solve{share} | |
| \solve{shave} | |
| \solve{shiver} | |
| \solve{shock} | |
| \solve{shop} | |
| \solve{sigh} | |
| \solve{sign} | |
| \solve{signal} | |
| \solve{sin} | |
| \solve{skip} | |
| \solve{slap} | |
| \solve{slip} | |
| \solve{slow} | |
| \solve{smash} | |
| \solve{smell} | |
| \solve{smile} | |
| \solve{snatch} | |
| \solve{sneeze} | |
| \solve{sniff} | |
| \solve{snow} | |
| \solve{soak} | |
| \solve{soothe} | |
| \solve{sound} | |
| \solve{spark} | |
| \solve{sparkle} | |
| \solve{spell} | |
| \solve{spill} | |
| \solve{spoil} | |
| \solve{spray} | |
| \solve{sprout} | |
| \solve{squash} | |
| \solve{squeak} | |
| \solve{squeal} | |
| \solve{squeezed} | |
| \solve{stain} | |
| \solve{stamp} | |
| \solve{stare} | |
| \solve{start} | |
| \solve{stay} | |
| \solve{steer} | |
| \solve{step} | |
| \solve{stir} | |
| \solve{stitch} | |
| \solve{strap} | |
| \solve{strengthen} | |
| \solve{stroke} | |
| \solve{stuff} | |
| \solve{subtract} | |
| \solve{succeed} | |
| \solve{suck} | |
| \solve{suffer} | |
| \solve{supply} | |
| \solve{support} | |
| \solve{surprise} | |
| \solve{suspect} | |
| \solve{switch} | |
| \solve{talk} | |
| \solve{tame} | |
| \solve{tap} | |
| \solve{taste} | |
| \solve{tease} | |
| \solve{telephone} | |
| \solve{tempt} | |
| \solve{test} | |
| \solve{thaw} | |
| \solve{tickle} | |
| \solve{tie} | |
| \solve{time} | |
| \solve{tip} | |
| \solve{tire} | |
| \solve{tour} | |
| \solve{trade} | |
| \solve{transport} | |
| \solve{tremble} | |
| \solve{trot} | |
| \solve{trouble} | |
| \solve{try} | |
| \solve{tumble} | |
| \solve{turn} | |
| \solve{type} | |
| \solve{undress} | |
| \solve{unfasten} | |
| \solve{unite} | |
| \solve{unpack} | |
| \solve{untidy} | |
| \solve{use} | |
| \solve{vanish} | |
| \solve{walk} | |
| \solve{wander} | |
| \solve{want} | |
| \solve{warm} | |
| \solve{warn} | |
| \solve{wash} | |
| \solve{waste} | |
| \solve{watch} | |
| \solve{water} | |
| \solve{wave} | |
| \solve{weigh} | |
| \solve{welcome} | |
| \solve{whine} | |
| \solve{whip} | |
| \solve{whirl} | |
| \solve{whisper} | |
| \solve{whistle} | |
| \solve{wink} | |
| \solve{wish} | |
| \solve{wobble} | |
| \solve{work} | |
| \solve{worry} | |
| \solve{wrap} | |
| \solve{wreck} | |
| \solve{wrestle} | |
| \solve{yell} | |
| \solve{zip} | |
| \solve{zoom} | |
| \end{document} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment