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

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

23
ケース順列
大文字と小文字のすべての順列を生成できる場合、大文字と小文字を区別せずに比較する必要があるのは誰ですか?誰も!それが答えです。誰もしません。あなたの仕事はこの偉業を達成することです。与えられた入力に対して大文字/小文字のすべての可能な順列を生成します。 入力 印刷可能な標準ASCII文字列。入力をすべて小文字と見なしてはなりません。入力は常に少なくとも1文字です。 出力 入力された文字列の大文字と小文字のすべての置換(重複なし)。これは、小さいバージョンと大きいバージョンの文字のみを変更する必要があります(数字は同じままです)。各順列は、文字列または文字のリストとして出力する必要があります。シングルトン文字列のリストは許可されていません。 例 a1a ['a1a', 'a1A', 'A1a', 'A1A'] abc ['abc', 'abC', 'aBc', 'aBC', 'Abc', 'AbC', 'ABc', 'ABC'] Hi! ['hi!', 'hI!', 'Hi!', 'HI!'] 得点 これはcode-golfであるため、最短回答(バイト単位)が優先されます。 おもしろいので、拡張アスキー文字を処理するのにどれだけの労力がかかるかを見てみましょう。追加のテストケースを次に示します。 ž1a -> ['ž1a', 'ž1A', 'Ž1a', 'Ž1A'] (プログラムはこれをサポートする必要はありません)

4
私の言葉を見つけてください!
この挑戦のアイデアは、文字のグリッド上の辞書からすべての単語を見つけることです。入力は、stdinまたは関数argから取得する必要があり、次の形式で入力します。 [your dictionary as a list of space sep words] [a grid of letters] Example: The cool car looc thea jopr 一致を見つけるためのルール 一致は、ボード上で斜め、水平、または垂直に見つかった場合に有効です(大文字と小文字は区別されません)。方向は関係ありません(例:look一致kool)。同じ単語に複数の一致がある場合は、それらすべてにマークを付けます。 出力: 出力は、指定されたグリッドになります-文字がスペースで区切られ、行が2倍になります。例: Input: looc thea jopr Output: l o o c t h e a j o p r マッチを表すために、一緒に行く文字の間に矢印を置きます。矢印(/\-|X)は、一致でグループ化された文字の各ペアを指します。交差するX場合に使用され/\ます。 例: Input: The cool car looc thea …

23
Javascript左パッドゴルフ
前書き left-pad npmパッケージ falloutをきっかけに、left-padを実装するためのコードゴルフをしましょう。 左パッドの機能は、フォームで、2つのデフォルト引数と1つの追加の引数で構成された文字列、長さ、(padchar)。padcharが指定されていない場合、これはスペース文字に標準化されます。2つの引数を持つ例を見てみましょう。 left_pad("abc", 6) まず、文字列の長さ3を観察します。この後、完全な文字列の長さが関数で指定された長さに達するまで、この文字列を左側に埋め込む必要があります。この場合6。padcharが指定されていないため、これにスペースを埋め込む必要があります。 abc これは、3つのスペースと最初の文字列を含む文字列であり、長さ6の文字列になります。次に、与えられたpadcharの例を示します。 left_pad("abc", 6, "-") 上記の例と同じことを行いますが、スペースをpadcharに置き換えます。この場合、ハイフン: ---abc タスク 与えられた文字列、長さ、および多分追加の引数padchar、出力左詰めの文字列。長さの数値は、文字列の長さ以上であると想定できます。padcharは常に1文字で構成されます。 テストケース left_pad("string", length, ("padchar")) === "left-padded string" left_pad("foo", 5) === " foo" left_pad("foobar", 6) === "foobar" left_pad("1", 2, "0") === "01" left_pad("1", 2, "-") === "-1" これはcode-golfであるため、バイト数が最小の提出が勝ちです!
27 code-golf  string 

21
wc coreutilを再実装します
この課題はこの古い課題と似ていますが、仕様のいくつかの不明確な部分が打ち出され、I / O要件が厳しくなっています。 印刷可能なASCIIと改行のみで構成される文字列の入力を指定すると、そのさまざまなメトリック(バイト、ワード、行カウント)を出力します。 出力する必要があるメトリックは次のとおりです。 バイト数。入力文字列はASCII内にとどまるため、これは文字数でもあります。 単語数。これはwc、「単語:」の非空白文字のシーケンスの定義です。たとえば、abc,def"ghi"1つの「単語」です。 行数。これは一目瞭然です。入力には常に末尾の改行が含まれます。つまり、行カウントは「改行カウント」と同義です。末尾の改行は1つしかありません。 出力は、デフォルトのwc出力を正確に複製する必要があります(ファイル名を除く)。 llama@llama:~$ cat /dev/urandom | tr -cd 'A-Za-z \n' | head -90 > example.txt llama@llama:~$ wc example.txt 90 165 5501 example.txt 行カウントが最初に来て、次にワードカウント、最後にバイトカウントになることに注意してください。さらに、各カウントはすべて同じ幅になるようにスペースで左詰めする必要があります。上記の例で5501は、は4桁の「最長」番号であるため165、1つのスペースと902 つのスペースが埋め込まれます。最後に、数字はすべて、各数字の間にスペースを入れて単一の文字列に結合する必要があります。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 (ああ、ちなみに... wc答えにコマンドを使用することはできません。それが明らかでない場合は。) テストケース(\n改行を表します。オプションで追加の末尾改行も必要になる場合があります): "a b c d\n" -> "1 4 8" "a b c d e f\n" -> …
27 code-golf  string 

9
乱数をpiにマッピングします
小数点の倍精度表現では、小数点以下15桁の精度しか保証できないため、piは次のように近似されます。 3.141592653589793 あなたは桁があることがわかります3の位置にあり1, 10, 16、数字が1位置している2, 4など チャレンジ あなたの仕事は、0から1の間のランダムな倍数を作成し、その数の値をpiの値にマッピングするプログラムまたは関数を作成することです。これを行うには、数字がpiにある位置の乱数に異なる数字を配置します。piに数字が見つからない場合はスキップし、乱数に含まれないpiの数字はすべてで表されますx。各値は、左から1回だけ使用できます。 いくつかの例はおそらくこれをより明確にするでしょう。次の例では、最初の数値はpi、2番目の数値は乱数、最後の数値は目的の出力です。 3.141592653589793 0.111111111111111 x.1x1xxxxxxxxxxxx 3.141592653589793 0.531000000000000 3.1xx5xxxxxxxxxxx 3.141592653589793 0.123456789123456 3.141592653x8x7xx 3.141592653589793 0.967552381459391 3.14159265358979x ルール: 関数は入力を受け付けません(例外の可能性については箇条書き3で説明しています) 出力は、オプションの改行を含む出力文字列のみで構成されます(単一の後続スペースも受け入れられます) プログラムに組み込みのPi値やRNGがない場合は、Piをハードコーディングし、入力として乱数を使用できます。乱数をハードコーディングしたり、Piを入力として使用したりすることはできません。 Piのハードコードされた値と15桁のランダムな数字(0.0から1の間になることがわかっているのでスキップできます)は、バイトカウントに含まれます。 言語に必要な精度がない場合は、次の制限の下で精度を下げることができます Piの桁は、持っている精度まで正確でなければなりません 正確であることが保証されている以上の値を出力することはできません。つまり、精度が8桁の正確な小数しか許可しない場合は15桁を出力できません。 プログラムが8桁しかサポートしていない場合でも、ハードコードされたPiの値は16バイトとしてカウントされます(小数点は必要ありません)。 乱数の入力値は15バイトとしてカウントされます(必要ありません0.。これは、精度の低い言語に不当な利点がないためです。 プログラムは5桁の精度をサポートする必要があります(少なくとも)。 編集:答えを検証するには:何らかの方法で乱数を出力する必要がありますが、この操作をバイトカウントに含める必要はありません。たとえば、print rスクリプトの最後にaを挿入できる場合、その部分はスコアを増加させません。 別の必要な操作の一部である場合、バイトを減算することはできません。つまり、コードがの場合、print pi, r減算することしかできません, r。 :あなたは、コード内の部品にいくつかの場所を挿入する必要がある場合は、プリント乱数やコメントなどでないものという両方のバージョン(1を含めてください_pと_oNo。乱数を印刷するために必要とされるが、_pXXXを行い、_oNoいYYY。_pおよび_oNoバイト数には含まれません。 バイト単位の最短コードが勝ちます。 リーダーボード この投稿の下部にあるスタックスニペットは、a)言語ごとの最短ソリューションのリストとして、b)全体的なリーダーボードとして、回答からカタログを生成します。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 ## Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: ## …
27 code-golf  string  random  pi 

7
ニンジン人気統計
でPPCGのチャットルーム十九バイトキャレット使用して、^(またはニンジンは)あなたがちょうどあなた以上前に作られたコメントの一つと一致していることを示すの方法です。 キャレットメッセージはN ^文字(Nは正の整数)のみで構成され、N 番目の前のメッセージとの一致を意味します。したがって、1つ^は直前のメッセージ^^との合意、2行目まで^^^のメッセージとの合意、3行目までのメッセージとの合意などを意味します。 さらに、キャレットメッセージXが別のキャレットメッセージYに同意する(別名)場合、XはYが同意するものに同意すると言われます。これには複数の層があり、最終的に、すべてのキャレットメッセージは1つの非キャレットメッセージとの一致を示しています。 たとえば、チャットの記録が次のようになっている場合:(1行に1メッセージ) I like dogs [line 1] I like cats [line 2] ^ [line 3] ^^^ [line 4] ^^ [line 5] I like turtles [line 6] ^ [line 7] ^^^ [line 8] ^^ [line 9] その場合、行1、2、および6は非キャレットメッセージであり、他のすべては非キャレットメッセージを指すキャレットメッセージです。 3行目は2行目を直接指しています。 行4は、行1を直接指しています。 行5は行3を指し、行3は行2を指します。 行7は行6を指しています。 行8は行5を指し、行5は行3を指し、行3は行2を指します。 行9は行6を指す行7を指します。 したがって、キャレット以外のメッセージを書いたユーザーを含めて(そして、人々が自分のメッセージを気にしないと仮定して)、次のように結論付けることができます。 2人が同意しますI like dogs(1行目と4行目) …
27 code-golf  string 

24
Atbash Self Palindromes
Atbash変換について考えてみましょう。 A|B|C|D|E|F|G|H|I|J|K|L|M Z|Y|X|W|V|U|T|S|R|Q|P|O|N A⇔ZおよびL⇔Oなど。一部の単語に共通する興味深い特性があります。一部の文字列がatbashに相当するものに翻訳されると、その翻訳は元の単語と逆になります。これらをAtbash Self Palindromesと呼びます。 例として、WIZARDを翻訳しましょう: W→D I→R Z→A A→Z R→I D→W 結果はDRAZIWされ、WIZARD逆転します。したがって、WIZARDはatbash self palindromeです。 目的印刷可能なASCII文字列を与え、その文字列がatbash self palindromeである場合は真実の値を出力するか、それ以外の場合は偽の値を返します。(これは、STDIN、最も近い同等の、機能的な入力などによって行われます。言語がこれらのいずれもできない場合は、入力をハードコーディングできる別の言語を選択することを検討してください。)入力が回文であり、atbashシーケンスの影響を受けない場合でも、回文+自体が回文であるため、trueを出力する必要があります。これはcode-golfであるため、バイト単位の最短プログラムが優先されます。 テストケース "Input" => true, false "WIZARD" => true "Wizard" => true // case doesn't matter "wIzArD" => true "W I Z A R D" => true "W IZ ARD" => false …

4
文字列をヒルベルト曲線にマッピング
いくつかの文字列を2D空間、フラクタルスタイルにマッピングしましょう。あなたの仕事は、ヒルベルト曲線を計算し、それに沿って文字列を置くことです。 仕事 タスクは、単一行の入力文字列を取得し、それを含むのに十分な大きさのヒルベルト曲線に沿ってそれを配置することです。バイト数をできるだけ少なくしてください。これは 結局コードゴルフです! 条件 空白が埋め込まれるギャップ。ただし、行末にパディングは必要ありません。 線の始点は左上隅に、終点は左下になければなりません。 プログラムまたは関数を作成できます。 いくつかの新しいテストケースが表示される場合があるため、何もハードコードしないでください! ボーナス 注:ボーナスは-50% & -20% on 100B= -20% on 50Bまたは-50% on 80B=のようにスタックします40B。 -50%入力が複数行の文字列である場合、元の入力を作成するプロセスを逆にします。ボーナスのテストケース:既存のものを使用するだけです(ボーナステストケースを含む!) -20%出力から不要な空白をすべて削除した場合(行末など)。 -5%グローバルネームスペースを汚染しない場合(私の意味はわかります!) テストケース abcdefghijklmn adef bchg nij mlk The quick brown fox jumps over the lazy dog. Thn f ju ewooxpm qckr rs ui btevo hlaz e y do …

18
右揃えのテキスト
あなたの仕事は、文字列の入力と数字を受け取り、文字列を右に揃えて、テキストの幅を数字にすることです。行が長すぎる場合は、その行を分割して残りを次の行に置き、不要になるまで繰り返します。行が幅より短い場合は、スペースで埋めます。複数の改行が発生する可能性があり、他の単一文字と同様に処理する必要があります。 たとえば、文字列 Programming Puzzles & Code Golf そしてその数5は以下を生成します: Progr ammin g Puzzl es & Code Golf 一方、同じ文字列と数値で10は次のようになります。 Programmin g Puzzles & Code Golf 文字列 a b そして、5という数字は以下を生成します: a <-- note the 5 spaces b 最短のコードが勝ちます!
27 code-golf  string 

25
文字列の反転と反転
文字列の反転と反転 チャレンジ この挑戦で。入力を出力または返す、反転および反転するプログラムを作成します。 まず、各文字をその文字コードに変換する必要があります。次に、それをbase-2に変換する必要があります。次に、その文字列を逆にする必要があります。その後、文字列を反転する必要があります(1-> 0および0-> 1)。最後に、それを基数2に変換してから、文字に変換し直す必要があります。文字が印刷不能になる場合は、オプションで出力できますが、削除する必要はありません。 H -> 72 -> 1001000 -> 0001001 -> 1110110 -> 118 -> v e -> 101 -> 1100101 -> 1010011 -> 0101100 -> 44 -> , l -> 108 -> 1101100 -> 0011011 -> 1100100 -> 100 -> d l -> 108 -> 1101100 …

7
安心できるたとえ
ここのかなりの数の人々は、おそらく熱心なXKCDリーダーです。だから、私はあなたに、ミーガンが簡単にできることをするように挑戦するだろうと考えています。コンピューターが決してできないことについて、何千もの安心できるたとえを生成するスクリプトを作成します。 あなたのスクリプト 任意の言語で書くことができます コードゴルフが必要 stdin吐き出されるたとえ話の数を入力する必要があります(これに相当する言語でMAX_INT)。 ランダムに生成された多くのたとえを出力します。 たとえは次のとおりです 〜で始まる 'Computers will never ' 次に、プログラムを最適化するために自由に選択できる16のユニークな英語動詞の1つですが、とを含める必要があります。code-golfunderstand 次に、プログラムを最適化するために自由に選択できる16個のユニークな英語の名詞の1つですが、とを含める必要があります。a saladan octopus 次に、プログラムを最適化するために自由に選択できる16のユニークな英語句の1つですが、とを含める必要があります。for funafter lunch 改行(\nまたは同等の)文字で終わる したがって、たとえば、入力がの2場合、有効な出力は次のようになります Computers will never code-golf a salad for lunch Computers will never hug a tree in vain プログラムのサイズは、文字ではなくバイト単位でカウントされます(したがって、ユニコードの意味がありません)。標準の抜け穴は許可されていません。 これが私の最初の挑戦なので、明らかな変更を加える必要がある場合はコメントしてください。 編集:辞書の「圧縮」を促進するために、バイト数から辞書のサイズを差し引くことを考えています。これがリモートで実行可能かどうかは、将来の回答から確認します。もしそうなら、あなたはボーナスを頼りにすることができます。

23
2つの文字列の大文字の入れ替え
your shift key is broken. wheNever you type two lines, the cApitaL LetteRs in them get swappeD. you must write a program to fiX THIS! 説明 入力は2つの文字列でs1あり、s2、長さが等しいです。それぞれには、印刷可能なASCIIのみが含まれ、長さは少なくとも1文字です。次の2つの文字列、2つの文字列の配列、または持つ単一の文字列として入力これらのかもしれないs1とs2、タブや改行のいずれかで区切られています。 出力は次のとおりです。 各文字のc中にs1: 文字が文字でない場合は、そのまま出力します。 それ以外の場合、c文字が: で一致する文字(同じインデックスの文字)を見つけますs2。 大文字の場合、出力 c大文字になります。 小文字の場合、出力 cします。 それ以外の場合、出力はc変更されません。 次に、with s1とs2switch を除いて同じことを行います。 本質的に、s1一致する文字s2が大文字であるすべての文字は大文字にs1するs2必要があり、同じインデックスに小文字が含まれるすべての文字は小文字になります(逆も同様です)。 テストケース 入力: ABCDEfghijKlMnOpqrstuvwxyz aaaaaaaaaaaaaaaa---------- 出力: abcdefghijklmnopqrstuvwxyz AAAAAaaaaaAaAaAa---------- 入力: PRogrammiNG …
27 code-golf  string 

30
Cヘッダー名をC ++ヘッダー名に変換する
C標準ライブラリでは、ヘッダー名は.hサフィックスで終わります。 stdio.h C ++では、これらのヘッダー名は代替形式で利用できますが、代わりにcプレフィックスが付いています。 cstdio 最初の形式を2番目の形式に変換する関数を作成します。変換はインプレースで行うことも、元の文字列をそのままにして新しい文字列を返すこともできます。選択した言語で自然に感じるものは何でも。 コードはエラーなしでコンパイル/解釈する必要があります。コンパイラの警告は受け入れられます。 これがベースラインCソリューションです。それは持っている70文字程度の警告を生成しますstrlen: void f(char*h){int i=strlen(h);h[--i]=0;while(--i)h[i]=h[i-1];*h='c';} 最短の解決策(文字数で測定)が優先されます。 更新:選択した言語が機能をサポートしていない場合、プログラム全体も受け入れられます。 更新: FUZxxlが示唆するように、C標準ライブラリのヘッダーファイルの完全なリストを以下に示します。 assert.h ctype.h errno.h float.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stddef.h stdio.h stdlib.h string.h time.h 具体的には、複数のドットを含むヘッダー名はありません。

30
バイナリ文字の文字列を同等のASCII文字に変換します
スペースで区切られたバイナリ文字の文字列を取得し、ASCII文字列に変換します。 例えば... 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 に変換します... Hello World バイナリ文字列はと呼ばれる変数に保存されますs。 これはコードゴルフの挑戦なので、最短のソリューションが勝ちます。

30
各文字の4つのコピーでアルファベットを生成します
これは、アルファベットを4回印刷するのと同じではないことに注意してください。 このタスクは、標準出力に英語のアルファベットの各文字の4つのコピーを1行に1つずつ生成するプログラムを作成することです。 A A A A B B B B 等 出力には、各文字の後に改行が含まれている必要があります。 余分な出力のない大文字が推奨されます。ただし、大文字化/削除によってソリューションが長くなる場合は、小文字や余分な空白を使用できます。 追加するために編集:ソリューションは実行するために十分に完成している必要があります。追加のコードを入力することなく、言語の実装を呼び出し、回答からコードを貼り付け、結果を取得できるはずです。 上記の完全性の問題は、Cソリューションのコンテキストで発生しました。確かに、コードゴルフサイトにはこれに関する常識的な規則または慣習が必要ですか?もしそうなら、私は喜んでコミュニティのガイドラインに従います。しかし、これは私の意見です: 特にCに関しては、コードの周りにmain(){... を含める(そしてカウントする)必要}があります。そうしないとコンパイルされないからです。#include <stdio.h>コードがまだコンパイルされている限り問題ないので、警告。一般に、コンパイル言語にはコンパイル可能なユニットが必要です。 式を直接実行する方法がある場合、目的の結果が得られる裸の式は受け入れられます。たとえば、言語にREPLがある場合。なしハスケルを提出することができますので、main=限り、それは実際に書かれたように機能として例えばghciプロンプトを。しかし、それはletあなたの宣言をすることを意味するので、runhaskellフォーマットに固執することは正味の勝利かもしれません。 同様に、awkスクリプトは入力を処理していないため、ブロックはBEGIN(またはEND、stdinがに接続されていると仮定して/dev/null)ブロック内にある必要があります。 等

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