///でゴルフをするための一般的なヒントは何ですか?私はコードゴルフの問題に適用でき、少なくとも///に特定のアイデアを探しています(たとえば、「不要な空白を削除する」は答えではありません)。itflabtijtslwiとLinesのヒントはトピックに基づいており、ここでも有効です。
回答ごとに1つのヒントを投稿してください。
///でゴルフをするための一般的なヒントは何ですか?私はコードゴルフの問題に適用でき、少なくとも///に特定のアイデアを探しています(たとえば、「不要な空白を削除する」は答えではありません)。itflabtijtslwiとLinesのヒントはトピックに基づいており、ここでも有効です。
回答ごとに1つのヒントを投稿してください。
回答:
//代替品として使用多数の置換を定義する場合、例えば:
/a/b//c/d//e/f//g/h//i/j//k/l//m/n//o/p//q/r//s/t//u/v//w/x//y/z/
(65バイト)。//代わりに使用できます:
/~/\/\///a/b~c/d~e/f~g/h~i/j~k/l~m/n~o/p~q/r~s/t~u/v~w/x~y/z/
(61バイト)。
このコード行に注意してください
/Stack/Overflow//x/\//Stack/ignore/DoItyignore
印刷のみ-3番目のスラッシュ部分にのみ印刷するため、以降Overflowの部分/ignoreは出力に含まれません///。
ただし、置換プログラムではまだ考慮されています。スラッシュを挿入すると、状況が変わります。
/Stack/Overflow//x/\//Stack/ignore/doitxignore
ここでの出力はOverflowdoitに置き換えxられ/、有効な構文になったためです。
基準に基づいて拡張し、中間結果を印刷する場合、将来の反復に以前の反復を組み込む
それは少し複雑に聞こえた。私が言っていることは、実際の答えを使って説明する方が良いかもしれません。この課題には、次の特定の出力が必要です。
Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.
単純な解決策の1つは次のとおりです。
/1/Steve Ballmer still does not know//2/ what he did//3/ wrong//4/ with mobile./1.
12.
123.
1234
通知はどのパターン1、12、123...繰り返されますか?まあ、これをするときではありません:
/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong//4/3 with mobile/1.
2.
3.
4.
もう一度、これを指摘してくれたMartin Enderに感謝します!
あなたは一枚の持っている場合は///、コードそのハンドルのすべてが、1つのケースを、あなたはエッジケースを処理するコードの端に文字を使用することができます。
例: 2番目の数値が7でない限り、単項は2つの数値を加算します。その場合、最初の数値のみを出力します。
「2番目の数字は7」の場合を除くすべてを処理するコード:
/+//<INPUT 1>+<INPUT 2>
*コードの最後にa を追加することで、+0000000*何も置き換えずにエッジケースを処理できます(+番号が7 以下であることを確認するために、を含める必要があります)。入力をクリーンアップするために、入力の前に必ずコードを含めるようにしてください。
/+0000000*///+///*//<INPUT 1>+<INPUT 2>*
「実世界」の例では、「ジミー」問題のいくつかでこのトリックを使用しました。