///でのゴルフのヒント


12

///でゴルフをするための一般的なヒントは何ですか?私はコードゴルフの問題に適用でき、少なくとも///に特定のアイデアを探しています(たとえば、「不要な空白を削除する」は答えではありません)。itflabtijtslwiLinesのヒントはトピックに基づいており、ここでも有効です。

回答ごとに1つのヒントを投稿してください。

回答:


5

//代替品として使用

多数の置換を定義する場合、例えば:

/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バイト)。


4

不完全な///ブロックは出力されません

このコード行に注意してください

/Stack/Overflow//x/\//Stack/ignore/DoItyignore

印刷のみ-3番目のスラッシュ部分にのみ印刷するため、以降Overflowの部分/ignoreは出力に含まれません///

不完全なブロックをオンラインで試してください!

ただし、置換プログラムではまだ考慮されています。スラッシュを挿入すると、状況が変わります。

/Stack/Overflow//x/\//Stack/ignore/doitxignore

オンラインで試してみてください!

ここでの出力はOverflowdoitに置き換えxられ/、有効な構文になったためです。


4

基準に基づいて拡張し、中間結果を印刷する場合、将来の反復に以前の反復を組み込む

それは少し複雑に聞こえた。私が言っていることは、実際の答えを使って説明する方が良いかもしれません。この課題には、次の特定の出力が必要です。

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

通知はどのパターン112123...繰り返されますか?まあ、これをするときではありません:

/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に感謝します!


2

コードの最後に文字を使用してエッジケースを処理する

あなたは一枚の持っている場合は///、コードそのハンドルのすべてが、1つのケースを、あなたはエッジケースを処理するコードの端に文字を使用することができます。

例: 2番目の数値が7でない限り、単項は2つの数値を加算します。その場合、最初の数値のみを出力します。

「2番目の数字は7」の場合を除くすべてを処理するコード:

/+//<INPUT 1>+<INPUT 2>

*コードの最後にa を追加することで、+0000000*何も置き換えずにエッジケースを処理できます(+番号が7 以下であることを確認するために、を含める必要があります)。入力をクリーンアップするために、入力の前に必ずコードを含めるようにしてください。

/+0000000*///+///*//<INPUT 1>+<INPUT 2>*

オンラインでお試しください!

「実世界」の例では、「ジミー」問題のいくつかでこのトリックを使用しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.