タグ付けされた質問 「string」

文字列の使用と操作を通じて特定の問題を解決するための競争。

30
サブシーケンス置換
ほとんどの言語には、指定された部分文字列のすべての出現を文字列で検索し、それらを別の部分文字列に置き換える組み込み機能が付属しています。この概念を(必ずしも連続的ではない)サブシーケンスに一般化する言語は知りません。それがこの挑戦におけるあなたの仕事です。 入力は3つの文字列A、BおよびCで構成されます。ここでBおよびCは同じ長さであることが保証されています。のBサブシーケンスとして表示される場合は、Aに置き換える必要がありCます。以下に簡単な例を示します。 A: abcdefghijklmnopqrstuvwxyz B: ghost C: 12345 次のように処理されます。 abcdefghijklmnopqrstuvwxyz || | || abcdef12ijklmn3pqr45uvwxyz Bサブシーケンスとして検索する方法がいくつかある場合は、左端のものを貪欲に置き換える必要があります。 A: abcdeedcba B: ada C: BOB Result: BbcOeedcbB and NOT: BbcdeeOcbB B複数のばらばらの場所で見つかった場合も同様です。 A: abcdeedcbaabcde B: ed C: 12 Result: abcd1e2cbaabcde and NOT: abcd112cbaabc2e (or similar) Bがに表示されない場合はA、Aそのまま出力する必要があります。 ルール 上述したように、3つの文字列を取りA、BそしてC入力などとの一番左の発生を置き換えるBにサブシーケンスとしてA持つCいかなるがある場合は、。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 3つの文字列は、回答で指定する必要がある一貫した順序で取得できます。あなたはそれを仮定し、同じ長さBをC持つことができます。すべての文字列には英数字のみが含まれます。 標準のコードゴルフ規則が適用されます。 テストケース 各テストケースは4行AでB、:C、、その後に結果が続きます。 abcdefghijklmnopqrstuvwxyz ghost …

24
あなたが見るものを言う
「Look and say」または「Say what you see」シーケンスは、それぞれが最後を説明する一連の数字です。 1 11 (one one) 21 (two ones) 1211 (one two, one one) 111221 (one one, one two, two ones) 312211 (three ones, two twos, one one) など... https://oeis.org/A005150 とにかく、これは2つの引数、初期数と反復回数を取るプログラムを作成するための通常のコードゴルフチャレンジ(最小バイト数が勝つ)です。たとえば、「1」と「2」を接続すると、結果は「21」になります。「2」と「4」を接続すると、結果は「132112」になります。楽しむ!

3
助けて!電卓が壊れた!(整数式を電卓のキーストロークに変換します)
前書き 助けて!誤ってTI-84計算機を窓から落とし(方法は聞かないでください)、壊れました。明日は数学のテストがありますが、見つけることができるのはこれらのボタンを備えた計算機だけです。 7 8 9 + 4 5 6 - 1 2 3 * 0 = / 私の数学のテストは、式の評価に関するレビューテストです。などの式を取得1+(5*4)/7し、予備の計算機でそれを解決するために必要なキーストロークに変換するプログラムが必要です。(そして、あなたが疑問に思っている場合、これは実際に私に起こりました)。 チャレンジ 含有する非空の入力文字列が与えられた唯一の文字0-9、(、)、+、-、*、および/、出力スペースで区切られた文字列内のキーストローク(例えば。1 + 3 / 3 =)。出力の最後には常に等号が必要です。標準の抜け穴は許可されていません。 例: 入力:1+(5*4)/7、出力:5 * 4 / 7 + 1 = 入力:6*(2/3)、出力:2 / 3 * 6 = 入力:(7-3)/2、出力:7 - 3 / 2 = この課題を簡単にするには: 入力には、計算機をクリアする必要のない一連のキーストロークが入力されていると想定1-(7*3)できます(計算する必要があるため無効です。7 * 3実行するには計算機をクリアします1 …

7
すべてのコードとアダプターを一緒につなげることはできますか?
ある日、未使用のコンピューターコードとアダプター(USBからUSB mini、VGAからDVIなど)の大きな箱を掘っていると仮定します。絡み合ったコードがいたるところに散らかっているので、すべてのコードを1本の長いストランドにまとめて、それを巻き上げるだけで物事を単純化できるかどうか疑問に思います。 問題は、すべてのコードとアダプターをこのように1本の長いラインで接続することは可能ですか?明らかに、常に可能なわけではありません。たとえば、プラグがまったく異なる2本のコードしかない場合、それらを接続できませんでした。しかし、両方に接続できる3つ目のコードがあれば、すべてのコードをつなぎ合わせることができます。 全コードより線の端にあるプラグの種類は気にしません。ループを形成するために互いに接続する必要はありません。あなたは、すべてのコードのストランドを作ることが可能かどうか、可能であれば、それをどのように行うかを知りたいだけです。 チャレンジ すべての行が所有するコードの1つを表す複数行の文字列を取り込むプログラムまたは関数を作成します。コードは、1つ以上のダッシュ(-)で構成され、両端にプラグが付いています。プラグは常に8文字の1つです()[]{}<>。 これらはいくつかの有効なコードです: >-> (--[ }-{ <-----] (---) しかし、これらはそうではありません: --> (-- )-- [{ --- コードを接続する場合、まったく同じブラケットタイプのプラグのみを接続できます。 したがって、これらは有効なコード接続です。 ...---((---... ...---))---... ...---]]---... ...---{{---... ...---<<---... そして、これらは無効です。 ...---()---... ...---)(---... ...---{]---... ...---{[---... ...---><---... ...--->)---... 入力内のすべてのコードを並べ替えて1つの長いストランドにまとめて接続できる場合は、そのストランドを1行のstdoutに出力します(オプションの末尾の改行を使用)。複数のソリューションがある場合、それらのいずれかを選択して出力できます。単一のストランドを作成できない場合は、何も出力しません(または、オプションの末尾の改行を含む空の文字列を出力します)。 たとえば、入力が [--> {---] >----{ 出力は [-->>----{{---] すべてのコードが一緒に張られています。 ただし、入力が [--> {---] コードは接続できないため、出力はありません。 接続に必要なだけコードをひっくり返すことができることに注意してください。例えば[-->とは<--]、彼らが接続の同じ種類を作ることができるので、効果的に同じコードです。一部の出力は、入力コードの反転に依存する場合があります。 例えば (-[ }--] 出力できる (-[[--{ …
30 code-golf  string 

10
正弦波テキスト
目標:入力文字列を正弦波形状で出力するプログラムまたは関数を作成します。 ASCII正弦波 これが正弦波の1つの期間です。 ....... ... ... .. .. . . . . . . . . . . . . . . . .. .. ... ... ....... 各列に正確に1つのドットがあることに注意してください。 入力文字列の各文字は、上記の形状のドットを左から右に置き換えます。 入力のスペースは、ドットの代わりに通常の文字のように出力する必要があります。 開始文字は、上の図の左端のドットに対応しています。 これは1周期のみで、入力は上記のドット数よりも長くなる場合があります。 入力 入力は、ASCII 10進数32(スペース)とASCII 10進数126(ティルド〜)の間の文字のみを含むASCII文字列です。 入力は常に1行のみです(改行なし)。 入力は、STDIN、関数パラメーター、コマンドライン引数、または同様のものを介して取得できます。 出力 出力は、指定されたテストケースとまったく同じように印刷する必要があります。 行の末尾のスペースは、それらの末尾のスペースを含む行の長さが最長行(最後の文字がある行)の長さを超えない限り許可されます。 先頭/末尾の行は許可されません。 テストケース 入力: ................................................. 出力: ....... ... ... …

30
「tac」の実装:ファイルの行を逆順に印刷します
子猫の質問からU&Lでsed魔法についてのこの質問を見るまで、実装はtacどうですか? 目的 ファイル内の行を反転して印刷するプログラムを実装します。 入力 名前として、または標準入力を介して提供されるファイル 出力 行を反転し、標準出力にします。 得点 ソースコードのバイト。
30 code-golf  string 

30
2つの文字列の最長共通プレフィックス
入力として2つの文字列を受け取り、最長の共通プレフィックスを返すプログラムを作成します。これはcode-golfであるため、バイト数が最も少ない答えが優先されます。 Test Case 1: "global" , "glossary" "glo" Test Case 2: "department" , "depart" "depart" Test Case 3: "glove", "dove" ""
30 code-golf  string 

30
猫はあなたの入力を再び食べました!
catプログラムを作成します。別名、入力を受け取って出力するプログラムです。 ...ただし、プログラムは入力から文字をランダムに削除し、代わりに印刷します。 入力の各文字は、プログラムで削除されるオッズが一般的に等しい必要がありますが、それを作成するのは難しいため、各文字のオッズは最大で10%しか変化しません。 プログラムは入力を受け取り、入力から文字をランダムに削除してから、そのバージョンを再度印刷する必要があります。(言語で改行を印刷する必要がある場合は、末尾の改行または他の文字で印刷できます。) 入力がの場合、BOOOWLすべてのOを等しい確率で削除するべきではありません。各文字(一意ではない)を考慮する必要があるため、結合されたすべてのOが1/5の確率を持つ代わりに(たとえば)、各Oは1 / 5のチャンスです。したがって、1/5のチャンスではなくBWL、1/5のチャンスがBOWLありBOOWLます。 入力はSTDINまたはそれに最も近いものに制限されます。 各キャラクターは、最低10%、最高30%の確率で除去されなければなりません。 各キャラクターのオッズは個別に計算する必要があります。 ランダムアクションをサポートする言語の任意のコンポーネントを使用できます。それが機能していても、他のものでもかまいません。 出力はSTDOUTまたは最も近い同等のものである必要があります。言語にSTDOUTがある場合は、他の方法で出力しないでください。あなたの言語が文字列をテキストとして出力できない場合、最も近いものを使用してください(Cの文字配列出力はここでOKです)。 これはコードゴルフです。最短のプログラムが勝ちます。

30
最も一般的な部分文字列
入力として文字列のリストを受け取り、すべての入力文字列の部分文字列である最長の文字列を出力するプログラムまたは関数を作成します。同じ長さの部分文字列が複数あり、部分文字列がなくなった場合は、いずれかを出力します。 これは、空の文字列を出力することを意味する場合があります。 有効な出力が複数ある場合は、いずれかを出力できます。出力が常に有効である限り、特定の入力に対して一貫した出力を提供する必要はありません。 入力には常に少なくとも1つの文字列がありますが、空ではない文字列が存在しない場合があります。 すべての印刷可能なASCII文字が入力に表示される場合があります。表示されるのはこれらの文字のみであると想定できます。 デフォルトのメソッドのいずれかを使用して、入力を取得したり出力を生成したりできます。 標準抜け穴は許可されていません。 これはコードゴルフです -コードのバイト数が少ないほど良いです。 テストケース: [Inputs] -> [Valid outputs (choose one)] ["hello", "'ello"] -> ["ello"] ["very", "much", "different"] -> [""] ["empty", "", "STRING"] -> [""] ["identical", "identical"] -> ["identical"] ["string", "stRIng"] -> ["st", "ng"] ["this one", "is a substring of this one"] -> ["this one"] …

30
pwaS eht tirsf dna tasl setterl fo hace dorw
または、「各単語の最初と最後の文字を入れ替える」 あなたの課題は、アルファベットのASCII文字列と、区切り文字として使用する他の1文字(各単語を区切る)を指定して、各単語の最初と最後の文字を入れ替えることです。1文字の単語がある場合は、そのままにします。 サンプル/テストケースでは、小文字とスペースを区切り文字として使用します。 句読点を処理する必要はありません。すべての入力は、デリミタで区切られたa〜zの文字のみで構成され、すべてが大文字です。 たとえば、文字列「hello world」の場合: Input string: "hello world" Identify each word: "[hello] [world]" Identify the first and last letters of each word: "[[h]ell[o]] [[w]orl[d]]" Swap the first letters of each word: "[[o]ell[h]] [[d]orl[w]]" Final string: "oellh dorlw" 注:区切り文字を個別に入力する必要はありません。区切り文字は、単語を区切るために使用される文字です。何でも構いません。創造的なゴルファーのためにオプションを開いたままにしたかったので、スペースや改行だけに制限したくありませんでした。区切り文字は、入力文字列内の単語を区切る単なる文字です。 テストケース: "swap the first and last letters of each word" …
30 code-golf  string 

10
///を解釈する(「スラッシュ」と発音)
難解な言語のゴルフを十分に得ることができないので、できますか? /// —発音のスラッシュ ——Perlのs///名声の正規表現置換機能に基づいた楽しい小さな言語です。スラッシュ/とバックスラッシュの2つの特殊文字のみが含まれています\。esolangs wikiで完全な記事を見つけることができますが、以下の言語の説明といくつかの例を再現します。 つまり、/pattern/repl/restプログラムで識別し、可能な限り何度も置換を行うことで機能します。いいえ文字は除いて特別ではない/と\:/画定パターンや交換プログラムで、しばらくは\リテラルを挿入することを可能にする/か、\あなたのコードに文字を。特に、これらは正規表現ではなく、単なる文字列の置換です。 あなたの課題は、できるだけ少ない文字で、STDINを読み取るプログラムまたは文字列引数を取る関数として、///言語のインタープリターを作成することです。 ///自体以外の任意の言語を使用できます。///;を解釈するライブラリは使用できません。ただし、正規表現、正規表現ライブラリ、または文字列一致ライブラリを使用できます。 実行 4つの状態、print、pattern、replacement、およびsubstitutionがあります。置換を除くすべての状態で: プログラムが空の場合、実行は停止します。 それ以外の場合、最初の文字がの場合、\次の文字(存在する場合)で何かを実行し、プログラムから両方を削除します。 それ以外の場合、最初の文字がの場合、/それを削除し、次の状態に変更します。 それ以外の場合は、最初の文字で何かをして、プログラムから削除します。 繰り返す。 状態は、print、pattern、replacement、およびsubstitutionを順に循環します。 では、印刷モード、文字手段の出力「何かを行います」。 では、パターンモードで、「何かをする」という意味は、現在のパターンに文字を追加します。 で代替モードで、「何かをする」という意味では、現在の交換に文字を追加します。 で置換モードでは、ルールの異なるセットに従ってください。置換が不可能になるまで、現在のパターンの最初の出現をプログラムの現在の置換で繰り返し置換します。その時点で、パターンと置換をクリアし、印刷モードに戻ります。 プログラム/foo/foobar/foo foo fooでは、次のことが起こります。 /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... これは永久にループし、置換モードを終了しません。同様に、パターンが空の場合、プログラムの先頭にある最初の空の文字列は常に一致するため、置換モードは永久にループし、停止することはありません。 例 no 出力:no。 / world! world!/Hello,/ world! world! world! 出力:Hello, …

26
これらの変数に矢印を付けてください!
チャレンジ ロビンは、変数宣言を矢印の形にすることが好きです。彼のやり方は次のとおりです。 任意の数の文字列を入力してください 長さを昇順に並べる 次のように、中央で順序付けられた出力を出力し、おおよそマイナスの矢印を形成します(ゴルフの順序が最も良い場合)。 5 or 4 3 2 1 1 2 3 4 5 テストケース 入力: bow arrows sheriffOfNottingham kingRichard maidMarian princeJohn sherwoodForest 出力: sheriffOfNottingham kingRichard maidMarian bow arrows princeJohn sherwoodForest 入力: a bb cc 出力(両方とも有効): bb a cc cc a bb 入力: one four seven fifteen 可能な出力(他の有効な出力は垂直ミラーのみです): …

15
冷蔵庫用マグネットの代替
冷蔵庫用マグネットとのメッセージを書くとき、あなたは、多くの場合、自分が代わりに見つける1ためにI。この課題の目標は、別のメッセージの文字を使用してメッセージを作成できるかどうかを確認することです。許可される置換は次のとおりです。 A = 4 B = 8 C = U E = M = W = 3 G = 6 = 9 I = 1 L = 7 N = Z O = 0 R = 2 S = 5 たとえば、メッセージCIRCA 333はspell ICE CREAMに再配置できます。最初の2つ3は180度回転して2つを作成Eし、最後の2つ3は反時計回りに90度回転してを作成しMます。空白はメッセージに含めることができますが、冷蔵庫に磁石を置くことで作成されるため、ソリューションで考慮する必要はありません。 入力 2つの文字列(または文字配列)。すべてのメッセージが一致します^[A-Z0-9 ]+$ 出力 2つの入力文字列が互いに有効な再配置である場合は真実、そうでない場合は偽です。 例 …

7
私たちは始めたところに終わりました!…
チャレンジ: 入力: 次の2つの入力を取ります 。-印刷可能なASCIIのみを含む文字列(スペース、タブ、または改行を除く) -印刷可能なASCII文字 出力: 最初の行には、文字列入力が含まれます。iこのキャラクターが最初に出現するすべての-modulo-3は、南東方向に移動します。すべてのi-modulo-3秒の出現は南方向に移動します。i-modulo-3が3番目に出現するたびに、南西方向に移動します。文字が再び最初の開始位置に来るまで続けます(つまり、必要に応じて一方の側から他方の側に回り込むことを意味します)。次に、文字列入力の最後の行を再度印刷します。それを終わらせて。(すべてのテストケースはlength(input)、後続の入力を含む行を含め、多くの行の後の最初の入力で終了することに注意してください。ただし、以下の最初のテストケースに見られるように、 9.) これはかなり曖昧かもしれないので、ここに例を示します: テストケース1: 文字列入力:"This_is_a_test" 文字入力:'s' 出力: This_is_a_test s s s ss s s s sss sss s s ss s s s s This_is_a_test 3つの色付きのパスを使用した同じテストケースを次に示しますs。 ここで、最初's'は南東方向の緑の道をたどります。2番目's'は南の方向に黄色のパスに従います。3番目's'は南西方向に水色の経路をたどります。(4番目がある場合's'は、再び南東方向に進みます。これは、以下の他のテストケースのいくつかで確認できます。) チャレンジルール: 入力には、印刷可能なASCIIのみが含まれます(スペース、タブ、改行を除く) I / O形式は柔軟です。改行で区切られた文字列、文字マトリックスなどを使用できます。呼び出し。 指定された文字が文字列に存在しない可能性があります。その場合、入力文字列を1回または2回"test", 'a'出力できます(つまり、次のいずれかを出力として使用できます:"test\ntest"/ "test")。 先行スペースは必須です。末尾のスペースはオプションです。1つまたは複数の先頭/末尾の改行が許可されます。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 …

9
山岳ですか?
チャレンジ この課題のために、山岳文字列はM: x(Mx)*、各プロダクションですべてのxが同じ文字である文法規則に準拠する文字列です。インデントすると、山のような文字列は次のようになります。 A B C D C E F E C B A ご覧のとおり、横から見ると少し山のように見えます。 正式な定義 どのキャラクターaも山岳です。 場合S山岳文字列で、a文字があり、その後、aSa並置は、文字列の連結を表し、山岳です。 場合aSaやaTa山岳文字列である、そしてaSaTa山岳文字列です。この規則は、このパターンが任意の数の繰り返しに適用されることを意味することに注意してください。(すなわちaSaTaUa、aSaTaUaVa、aSaTaUaVaWa...すべての山地です。) 例 すべての奇数長パリンドロームは、たとえば次のように山岳です。 t a c o c a t qwertytrasdfdgdsarewqjklkjq それほどささいな例です: q w e r t y t r a s d f d g d s a r e w …

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