最近、新しいTeaScriptインタープリターで問題が発生しています。最大の問題は、文字列に特殊文字が含まれているかどうかを識別することです。
チャレンジ
特殊文字は、コードポイント160〜255の文字として定義されます。コードポイント0〜255の文字列である入力が与えられますが、最大1つは特殊文字です。入力は、ゼロ以上の文字のプレフィックス、引用符付き文字列、およびゼロ以上の文字のサフィックスで構成されます。引用符で囲まれた文字列に特殊文字がある場合は、真の値を出力し、そうでない場合は偽の値を出力する必要があります。
細部
- 文字
"'
は引用符と見なされます。 - 引用符で囲まれた文字列内では、バックスラッシュ
\
を使用して次の文字をエスケープします。プレフィックスとサフィックスでは、特別な意味はありません。 - 見積もりは常にバランスが取れています。
- 引用符で囲まれた文字列は1つだけです。
例
"Hello, World¡"
true
"Hello, World"¡
false
"Hello' Wo\"rld\\"¡
false
ab"cd\"ef\\gh\i\\"£
false
\"foo¡"
true
1
これは、Unicode文字がエスケープされるテストケースを使用できます。
—
マーティンエンダー
また
—
マーティンエンダー
'
、単一のテストケースで文字列と複数の文字列を実際に使用するテストケース(理想的には、その間にUnicode文字を使用)。
@MartinBüttnerルールの1つは、「引用符のセットは1つしかない」ということですが、他のテストケースのアイデアは+1します。
—
user81655
@ user81655ああ、見落としました。それは物事を簡素化します。
—
マーティンエンダー
「Unicodeには1,114,112文字しかないので、コードはできるだけ短くする必要があります」................ゴルフの正当化についての言葉はありません。
—
ETHproductions、2015