私の情報源は順調です、あなたのものですか?


14

あなたの課題は、渡された文字列が「順序どおり」かどうかを計算するプログラム、関数などを書くことです。つまり、文字列の文字には、最小から最大の順序の文字コードがあります。最小の文字コードが最初でなければなりません。つまり、最低のUnicodeコードポイントから最高のUnicodeコードポイントを意味します。言語で使用するコードページは関係ありません。

入力が「順序どおり」の場合は1つの値を返し、そうでない場合は別の値を返す必要があります。値は異なる必要がありますが、出力値には他の制限はありません。たとえばtrue!1AQaq¡±(順番に)およびの印刷/返品/出力が可能falseですaq!QA。2つの異なる値は、真実であるか偽物である必要はなく、2つの異なる値である必要があります。繰り返される文字列(例:)aaは順序どおりです。

サポートする必要があるのは、Unicode U+007E~)(ascii 126)までです

ただし、プログラムの文字自体は正しいものでなければなりません。幸運と幸せな


あなたは真実/偽の値を持つ必要はありませんか?2つの真実はうまくいくでしょうか?
Rɪᴋᴇʀ

また、最小の文字コードは常に最初の文字にありますか?それとも逆にできますか?
Rɪᴋᴇʀ

12
コードゴルフは、正直なところ、この形式の制限されたソースに対する貧弱な勝利条件のようです。ほとんどのユニークなキャラクターのコードボウリングは、より興味深いものになるでしょう。
-fəˈnɛtɪk

1
@Pavel Popの短所は、特定の方法で特定のタスクを達成するためにうまく機能しません。
デニス

2
文字列は順番に繰り返されますか?たとえば、"aa"順番にありますか?
-tsh

回答:


14

Brachylog、2バイト

.o

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

説明

.o
.   Assert that {the input} equals the output of the last command in the program
 o  Sort {the input}

完全なプログラムとして、アサーションの失敗によりfalse.、アサーションに違反しない実行が成功すると、true.


9

ゼリー、2バイト

Ṣ⁼

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

説明

Ṣ⁼
Ṣ    Sort {the input}
 ⁼   Compare that to {the input} for equality of the whole structure

⁼Ṣ また、正しい機能(「入力をソートされた入力と比較」)があるため、2つのプログラムを自分で実行して、どちらが正しいかを判断しました(この部分のUnicodeコードポイントは確かにありません)ジェリーの奇妙なキャラクターセットの記憶)。


あなたの提出物はJellyエンコーディングで間違っています⁼Ṣ。代わりにそうする必要があります。Jellyのコードページはこちらにあります
エリックアウトゴルファー

@EriktheOutgolferこれは簡単に修正できます。⁼Ṣとまったく同じṢ⁼です。
-steenbergh

@steenberghこの投稿は、現時点では無効です。修正は簡単ですが、まだ適用されておらず、他の人がコードを編集することはお勧めできません。
エリックアウトゴルファー

1
@EriktheOutgolferこの回答についての議論は、主にどのコードページを使用するかについてです。チャレンジはユニコードを参照しますが(明示的に使用するように指示しません)、Jellyには独自のコードページがあります。結果がどうであれ、この答えを修正するのは簡単です。そのため、この答えを「無効」と呼ぶまでは行かないでしょう-現在の状態でそれをダウン票すらしません。
-steenbergh

@steenbergh私もどちらかを投票していません、私はちょうどais523に通知していました:)
エリックアウトゴルファー

9

MATL、5バイト

GGS\a

0入力が正しい場合は出力し、1そうでない場合は出力します。

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

説明

これは、入力からの各char(のコードポイント)のモジュラスを、ソートされた入力の同じインデックスにあるものと計算します。すべての結果がである場合にのみ、入力は順序どおりです0

たとえば、入力文字列を考えますBCD!。それを並べ替えることができ'!BCDます。コードポイントの配列はそれぞれ[66 67 68 33][33 66 67 68]です。モジュライを計算するとが得られる[0 1 1 33]ため、入力は順序どおりではありません。いくつかの結果がいかに注0値(ここでは第1の位置に起こること)同じではありませんでしたが、それはに起こることができない場合でも、すべての入力が順序である場合を除きエントリ。

G     % Push input string
GS    % Push input string and sort it
\     % Modulus, element-wise. This gives all zeros iff the input was in order
a     % Any: gives 1 if any entry is non-zero. Implicitly display

8

05AB1E3 2バイト

ソースコードの33%を削減してくれたKevinに感謝します!

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

説明:

      There used to be a D here for 'Duplicate stack' 
      but we now use the same input twice implicitly
 {    Sort the copy
  å   Check if the sorted copy is a substring of the original
      This will only return 1 if the original input is sorted, 0 otherwise.

D{Qまた...作品
ニールA.

1
@ NeilA.Itは同じことをするかもしれませんが、文字は順番どおりではありません。要件は、ソースコードがデータと同じテストに合格することです。これにより1が生成されます。
-steenbergh

1
Dただ暗黙の入力を二度使って、-1のために除去することができます。
ケビンクルーイッセン



2

Pyth、2バイト

<S

FalseはソートをTrue意味し、ソートされていないことを意味します。

テストスイート

これは非常に簡単なことでした。この問題に対する最も明らかな解決策はSI、ソースが制限されていない場合、ソート時の不変量です。しかし、それはソートされていません。次にqS、暗黙的に入力変数を2回使用し、ソートされたselfと等しいかどうかをチェックすることを考えました。しかし、しばらくq < sq > Sこのよういずれかの動作しませんでした。しかし、の<Sにあり、ソートされたバージョンは元のソートよりも小さくできない唯一の方法は、ソートされたバージョンが辞書順で要素の最小順列であるため、オリジナルがソートされた場合です。


1

CGL(CGLゴルフ言語)、4バイト(非競合)

-:Sc

説明:

- Decrement the stack counter so the current stack is where input is put
: Split the first element of the current stack (input) into an array of single strings, make that the next stack, and increment the stack counter
S Sort the current stack
c Compare the current stack and the one before, push that to the next stack and increment the stack counter
(implicit) Output the first element of the current stack, true if in order, false if not.

非競合なぜなら:Sおよびcこの課題の作成後に実施されました。


このチャレンジの前にこの言語が作成されたという証拠はありますか?
クリティキシリソス

@KritixiLithosはい、それは技術的には有効な言語ですが、これを完了するために必要な機能はこのチャレンジの後に作成されたため、私はこれを非競合にします。CGLはまだ進行中の作業であり、チャレンジを使用して、どの新しい機能を追加する必要があるかを示しています。
Programmer5000
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.