問題は、指定された入力が整数、文字列、または10進数のいずれであるかを判別することです。
ルール
- 文字列は、整数でも浮動小数点数でもない任意の入力です
- 整数には数字のみを含める必要があり、ゼロで始めることはできません
- 10進数は、ピリオド(
.
)を含み、ピリオドが数字で囲まれている任意の入力です。
注: .01は有効な10進数とは見なされません。
- プログラムは、「string」、「integer」、または「decimal」のいずれかの生の文字列を出力する必要があります。
- 印刷可能なASCII文字のみが使用されていると想定できます
ケース:
asdf -> string
asdf3.4 -> string
2 -> integer
2.0 -> decimal
02 -> string
40. -> string
. -> string
.01 -> string
0.0 -> decimal
.9.9.9 -> string
[empty space] -> string
編集:タイプミスを修正しました。私は、先頭のゼロなしで.01を意味しました。それが不明確になった場合は、修正されました!
これはコードゴルフなので、最も短い答えが勝ちます。
5
02が整数ではないのはなぜですか?チャレンジの難易度を上げるために、これらは恣意的な制限のように感じます。
—
Addison Crump、2015
02
ほとんどの言語では、型がの場合は先行ゼロをトリムしますが、integer
として格納される場合は先行ゼロを維持するため、整数とは見なされませんstring
。ただし、@ isaacgを使用しているので0.0
、10進数と見なされれば、それも10進数に0.01
なります。.01
数えないのは理にかなっていると思います...
@Zequ .01カウントしないのは理にかなっていると思います ...- なぜですか?ほとんどすべての言語で有効です。
—
mınxomaτ
プログラミングパズルとコードゴルフへようこそ!質問にコメントしたすべての人に不必要にpingを送信する必要はありません。編集により、質問は自動的に再オープンキューに入れられ、必要に応じて再オープンされます。さらに、あなたの課題の多くは解決されたようです。まずサンドボックスで実行してみてください。ありがとう!
—
ドアノブ
@CrazyPython「有効な整数」と「有効な10進数」で得られるアイデアは、正規表現のアイデアだと思います。あなたのルールを理解しているように、各整数と各小数を書き込む方法は1つだけです。それが意図である場合、それをチャレンジに追加すると、ルールが規則どおりである理由が明らかになります。
—
isaacg