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

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

24
エニグマを破る?
前書き エニグマは、第二次世界大戦で使用された最初の電気機械式ローター暗号マシンの1つでした。つまり、1つの文字がコーディングされた後、次の文字のキーが変更されます。これは、巨大なキースペースのために、ドイツ人によって破られないと考えられていました。総当たり攻撃でさえほとんど不可能でした。しかし、エニグマには設計エラーがありました。手紙を暗号化しても、それ自体にはなりません。それは、手紙Aが手紙を除くすべての手紙に暗号化できることを意味しAます。 コード化されたメッセージの例を見てみましょう。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ 典型的なドイツ語の単語はWETTERBERICHT、英語の天気予報です。上記の原則を使用すると、単語がどの場所に存在する可能性があるかを判断できます。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ I暗号化できないため、これは不可能です。そのため、1か所に移動します。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ これも不可能なので、別の場所に再び移動します。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ これも不可能です。実際、最初に発生する可能性があるのWETTERBERICHTは次のとおりです。 BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT 0123456789012345678901234567890123456789012345678901234567890123 ^ 13 そのため、最初に発生する可能性のある0から始まる位置、つまり13を返します。 タスク コード化されたメッセージと単語が与えられた場合、最初に発生する可能性のあるインデックスを見つけます。 基本的な大文字のアルファベット文字のみが使用されると仮定します(ABCDEFGHIJKLMNOPQRSTUVWXYZ)。 何の出現が見つからない場合は、出力任意のできる負の整数、文字、または何も(例えば-1、X)。 入力は、引数として、個別の改行、リスト、その他で受け入れられます。 これはcode-golfであるため、バイト数が最小の提出が勝ちです! テストケース Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT Output: 13 Input: ABCDEFGHIJKL, HELLO Output: 0 Input: EEEEEEEEEEEE, HELLO Output: -1 Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND Output: 11 …
65 code-golf  string 

22
子猫コマンド
子猫は猫によく似ています。主な違いのいくつかは、可愛らしさ、知性の欠如、サイズです。同様に、catコマンドはコマンドとは異なりkittenます。幸いなことに、この場合の違いは1つだけです。kittenコマンドでは、大文字はすべて小文字に置き換えられます。 目的 と同様に動作するプログラムを実装するcat。すべての文字[A-Z]は小文字で出力されます。 入力 コマンドライン引数としてのファイルのリスト。ファイルがリストされていない場合は、標準入力から読み取ります。入力には、印刷できない文字とASCII範囲外の文字が含まれる場合があります。 出力 入力がファイルの束である場合、内容を連結し、すべての文字を小文字として出力します。STDINから読み取る場合は、すべて大文字を小文字にしてSTDINの内容を出力します。 注:文字は[A-Z]小文字のみにしてください。他の文字が小文字になっている場合は受け入れられません。 例 $ echo "HelLo" > file.txt $ kitten file.txt hello $ echo "Good Bye" | kitten good bye $ echo "Ä" | kitten Ä code-golfの場合と同様、最小バイトが勝ちます。 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # …

30
ゴルフイタチプログラム
リチャードドーキンスは彼の本The Blind Watchmakerでイタチプログラムについて説明しています。アルゴリズムは次のように説明できます。 28文字のランダムな文字列から始めます。有効な文字はすべて大文字とスペースです。 その文字列のコピーを100個作成し、その文字の文字ごとに5%の確率でランダムな文字に置き換えます。 新しい文字列をターゲット「METHINKS IT IS LIKE A WEASEL」と比較し、文字列内の正しい文字と正しい位置にある文字の数に応じてそれぞれにスコアを付けます。 新しい文字列のいずれかに完全なスコア(28)がある場合、停止します。 ステップ3から最高得点の文字列を選択します。タイの計算方法はユーザー次第ですが、選択できる文字列は1つだけです。選択した文字列を取得して、手順2に進みます。 勝者は、各世代の最高得点の文字列を次の形式で印刷しながら、正しい答えを得るための最短のコードスニペットになります。 人々が他の人々の答えをチェックすることで助けてくれるなら、とても役に立ちます!

30
COBOLプログラムのコメントを外します!
COBOLは非常に古い言語であり、執筆時点では58歳です。実際、非常に古いため、非常に興味深い癖があります。各行の最初の6文字はコメントです。 これはなぜですか?まあ、これらの6文字は、プログラムが完全にデジタル化されておらず、コンピューターに入力されていなかった当時、行番号として使用されることを目的としていました。 さらに、7番目の文字は非常に小さなセットの一部にしかならない可能性があります(通常*、行またはスペースをコメントアウトして、コードから行番号を分離します) しかし、よりデジタルシステムを使用していて、生のプログラムだけが必要な場合はどうでしょうか。 コメントシステム COBOLには2種類のコメントがあります。行コメントと前述の「行番号」コメントです。 行番号のコメントを外すのは簡単です。各行から最初の7文字(6プラス1スペース)を削除するだけです。 000000 apple 000001 banana celery donuts になるだろう: apple banana donuts 行コメントはそれを少し難しくします。行コメントは*、次のように、行の7番目の文字位置にアスタリスクを配置して開始されます。 000323* this is a comment これは行コメントではありません: *00000 this isn't a comment 行コメントのコメントを解除するには、行全体を削除します。 「プログラム」とコメントされた例: 000000 blah blah 000001* apples 000002 oranges? 000003* yeah, oranges. 000*04 love me some oranges コメントなしのバージョン: blah blah oranges? …

19
全体として、それはただ、ええと、コードゴルフの別のトリックです
このチャレンジの目的は、ロックバンドのピンクフロイドによるこの素晴らしいアルバムの表紙のASCIIバージョンを作成することです。 レンガジャンクションはキャラクター_とでできてい|ます。レンガには、接合部を除く幅7および高さ2の文字があります。したがって、ジャンクションを含む基本単位は次のとおりです。 _________ | | | | _________ レンガの各行は、前の行に対してレンガの幅の半分(4文字)オフセットされています。 ________________________________________ | | | | | | | | | | ________________________________________ | | | | | | | | | | ________________________________________ | | | | | | | | | | 壁は次のようにパラメーター化されます。すべてのパラメーターは、ジャンクションを含む文字で測定されます。 最初の行の水平オフセットF。これは、左マージンと最上行の最初の垂直ジャンクション間の距離です。(行間のハーフブリック相対オフセットも覚えておいてください)。その可能な値は0、1、...、 7。 総幅、W。これにはジャンクションが含まれます。その値は正の整数です。 総高さ、H。これにはジャンクションが含まれます。その値は正の整数です。 壁の上部は常に行の上部と一致します。底面が不規則になる場合があります(合計の高さがの倍数でない場合3)。例えば、ここのための出力です6、44、11: ____________________________________________ | …

12
逆インデント
逆にインデントすると、コードがより速く実行できるため、コンパイラは「ブランチ」の最上部からツリー設計パターンのようにコードを処理できると聞きました。これは、重力によりコードのコンパイルにかかる時間が短縮され、データ構造の効率が向上するためです。Javaスクリプトの例を次に示します。 function fib(n) { var a = 1, b = 1; while (--n > 0) { var tmp = a; a = b; b += tmp; if (a === Infinity) { return "Error!"; } } return a; } しかし、何らかの理由で、メモ帳にはこれを自動的に行う設定がないため、それを行うプログラムが必要です。 説明 提出には、入力としてコードスニペットを使用し、インデントを反転し、結果のコードを出力する必要があります。 これは、次の手順で実行されます。 コードを行に分割します。各行はゼロ個以上のスペースで始まります(タブはありません)。 コード内のすべての一意のインデントレベルを見つけます。たとえば、上記の例では、これは 0 4 8 12 このインデントレベルのリストの順序を逆にし、逆のリストを元のリストにマッピングします。これは言葉で説明するのは難しいですが、例では、次のようになります 0 …

28
6が7を恐れていたのはなぜですか?
6が7を恐れていたのはなぜですか?なぜなら7 8 9! 文字列を指定すると、次の変換が適用されます。 7の隣に6がある場合、6を削除します(6は7を恐れています) シーケンス「789」が表示される場合、8と9を削除します(7 ate 9) (私が間違っていなければ、どの順序で変換を行うかは関係ありません) これらの変換を適用できなくなるまで続けます。 例: 78966 最初に「789」が表示されるため、文字列は「766」になります。次に、「76」が表示されるので、6を取り出すと、ストリングは「76」になります。その後、再び「76」が表示されるため、「7」が残ります。 テストケース: 987=> 987(正しい順序ではありません。何もしません。) 6 7=> 6 7(空白は6〜7のバッファとして機能します。何も起こりません) 676 => 7 7896789 => 77 7689 => 7 abcd => abcd
61 code-golf  string 

30
スラッシュを描く
プログラマーとして、あなたはおそらくスラッシュとバックスラッシュを聞いたことがあるでしょう。しかし、あなたはダウンスラッシュを聞いたことがありますか?それは、あなたがたくさんのスラッシュを取り、それらの端をつなぎ、それらを引き下ろすときです。 今日の課題では、純粋にスラッシュで構成される文字列を受け取り、それらを結ぶ線で下向きに描かれたすべてのスラッシュを出力するプログラムまたは関数を作成する必要があります。例を見ると、これはより明確になります。文字列を指定すると\\\//\/\\、次を出力する必要があります。 \ \ \ / / \ / \ \ いくつかの説明を次に示します。 行ごとに1つのスラッシュが必要です。 最初の行には、先頭に0個のスペースがあります。 スラッシュの各ペアに対して: それらが互いに異なる場合、それらは同じ列に描画されます。たとえば、次のように\/なります。 \ / それらが同じ文字である場合、下の方が指す方向にあり、バックスラッシュの場合は右に移動し、スラッシュの場合は左に移動します。だから\\//与える \ \ / / 出力の視覚的な外観が変わらない限り、各行には余分な末尾の空白があります。最大1つの末尾および先頭の改行も使用できます。余分な先行スペースは使用できません! これをより簡単に保つために、文字列に含まれるスラッシュが多すぎることはないと想定できます。言い換えると、入力のプレフィックスにはバックスラッシュよりも多くのスラッシュが含まれないため、\\////またはのような入力//は与えられません。これは、すべての入力がバックスラッシュで始まることも意味します。 入力が文字列リテラルとして取得される場合、必要に応じて円記号をエスケープできます。また、空の入力や、スラッシュ以外の文字を含む入力を処理する必要はありません。 妥当な形式で出力できます。 いつものように、これはコードゴルフの挑戦なので、これがかなり難しい言語を選んだとしても、最短の解決策を可能にするようにしてください。バイトを削除するために使用した興味深いテクニックを説明するためのボーナスポイント! 例 #Input \\\\\\\\\\\ #Output \ \ \ \ \ \ \ \ \ \ \ #Input \\\//\\/\//\\/// #Output \ \ \ / …

30
オレオレエレレオー
オレオレエレレオー 「oreo」という単語に類似した入力文字列を指定し、入力文字列と同じ幅のCookieのASCII表現を指定します(Cookieの安定性を確保するため)。 ルール 入力は小文字で、文字列「o」と「re」の任意の組み合わせを含み、それらの文字列のみを含む空白のない空ではない文字列です。 文字列「o」は固体Cookieを表し、文字列「re」はフィリングを表します。 出力は、入力文字列と同じ幅のスタックCookieである必要があります。 出力は文字列の配列ではない可能性があります Cookieは、各側に1文字ずつ、詰め物と重なる必要があります 出力に使用される文字は、以下の出力(█および░)と一致する必要はありません。Cookieの2つの部分で異なる非空白文字である必要があります。 塗りつぶしの左側の空白スペースは必須であり、後続の空白はオプションです 例 Input: oreo Output: ████ ░░ ████ Input: o Output: █ Input: re Output: (two spaces) Input: rere Output: ░░ ░░ Input: oreoorererereoo Output: ███████████████ ░░░░░░░░░░░░░ ███████████████ ███████████████ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ░░░░░░░░░░░░░ ███████████████ ███████████████ これはコードゴルフなので、最短の回答が勝ち、幸運を祈ります:)

30
これはロケット科学ではありません
単一行の文字列を取り込むプログラムまたは関数を作成します。印刷可能なASCIIのみが含まれていると想定できます。次のようなASCIIアートロケットの文字列を印刷または返す | /_\ |E| |a| |r| |t| |h| |_| /___\ VvV 入力文字列は胴体の上から下に書かれています。この場合、入力はでしたEarth。ロケットの高さ(炎を含む)は、常にストリングの長さ+ 5です。 出力の各行には、最大2つの末尾スペースがあり、オプションの末尾改行が1つある場合があります。バイト単位の最短コードが優先されます。 その他の例: [empty string] | /_\ |_| /___\ VvV a | /_\ |a| |_| /___\ VvV |0 | /_\ ||| |0| |_| /___\ VvV \/\ | /_\ |\| |/| |\| |_| /___\ VvV _ _ [note trailing …

13
ワードクロックを印刷する
数年前に最初のものを見たので、私は常にこの種のワードクロックに支配されていました。 その時計に表示されるテキストは次のとおりです。 IT IS HALF TEN QUARTER TWENTY FIVE MINUTES TO PAST TWO THREE ONE FOUR FIVE SIX SEVEN EIGHT NINE TEN ELEVEN TWELVE O'CLOCK あなたの仕事は、そのような作業クロックを書くことです。現在の時刻の印刷に関連する場合にのみ、単語が点灯します。それ以外の場合、それらは点灯します。単語は印刷されることにより「点灯」され、単語の長さであるスペースの数に置き換えられることにより「消灯」されます。 例:現在の時刻が17:23の場合、印刷されるテキストは次のとおりでなければなりません。 IT IS TWENTY FIVE MINUTES PAST FIVE ルール 印刷される時間は12hバリアントですが、AM / PMはありません。 四捨五入は分単位でのみ行われます(秒はまったく関係ありません)。丸めは5の最も近い倍数で行われます。たとえば、17:52:38は実際には17:55に最も近いですが、秒は無関係なので、17:52は実際には17:50に切り捨てられます。また、印刷されるテキストは「6分間で10分です」(関連するスペースを使用)です。XX5の倍数の場合XX、HH:(XX-2):00からHH:(XX + 2):59まで使用されます。単語がMINUTESあれば表示される必要がありますFIVE、TENまたはTWENTY(「TO」や「過去」の前に)分のセクションに点灯されています。 関係のない単語はすべて、必要な数のスペースに置き換えられ、上記のテンプレート内のテキストを保持します。末尾のスペースは削除される場合があります。テキストを予想される位置に保持することに関連するスペースを保持する必要があります。 末尾の行もトリミングできます。関連する空の行を表示するには、引き続き必要です。例: IT IS TEN MINUTES PAST TWO これらの値が時間を指している場合TEN、1行目またはFIVE3行目に点灯しないでください。 …
59 code-golf  string  date 

30
いくつかの「deciph4r4ng」をしましょう
このチャレンジでは、あなたの仕事は文字列を解読することです。幸いなことに、アルゴリズムは非常に単純です。左から右に読むと、出会った各桁N(0〜9)は、その前のN + 1位置の文字に置き換える必要があります。 例 入力文字列"Prog2am0in6"は次のようにデコードされます。 したがって、予想される出力は"Programming"です。 明確化と規則 入力文字列には、32〜126の範囲のASCII文字のみが含まれます。空になることはないと想定できます。 元の解読された文字列には、数字が含まれないことが保証されています。 文字がデコードされると、次の数字で参照される場合があります。たとえば、"alp2c1"としてデコードする必要があります"alpaca"。 参照は文字列をラップすることはありません。前の文字のみを参照できます。 完全なプログラムまたは結果を出力または出力する関数を作成できます。 これはコードゴルフであるため、バイト単位の最短回答が優先されます。 標準的な抜け穴は禁止されています。 テストケース Input : abcd Output: abcd Input : a000 Output: aaaa Input : ban111 Output: banana Input : Hel0o W2r5d! Output: Hello World! Input : this 222a19e52 Output: this is a test Input : golfin5 3s24o0d4f3r3y3u …

16
文字列のスネーク解除
通常の文字列は次のようになります。 Hello,IAmAStringSnake! そして、ストリングスネークは次のようになります: Hel l rin o,IAmASt g S !ekan あなたのタスク 文字列蛇は危険なので、文字列蛇を入力として受け取り、通常の文字列として出力するプログラムを作成する必要があります。 仕様書 入力は、複数行の文字列または文字列の配列にすることができます。 入力の各行にはスペースが埋め込まれ、長方形のグリッドが形成されます。 ヘビのキャラクターは、ゲームのスネークのように、上下左右に隣接するキャラクターにのみ接続できます。彼らは斜めに行くことはできません。 ヘビのキャラクターはヘビの別の部分に隣接することはなく、接続されたキャラクターのみが隣接します。 文字列の最初の文字は、入力グリッドの左上隅からマンハッタン距離が最短の終了文字です(つまり、ヘビが終了文字から左上に直接移動するために必要な移動の最小数)コーナー)。両端が同じ距離になることはありません。 文字列には、コードポイント33〜126の間のASCII文字を含めることができます(スペースや改行は使用できません)。 文字列の長さは2〜100文字です。 バイト単位の最短コードが優先されます。 テストケース (入力グリッド、その後に出力文字列) Hel l rin o,IAmASt g S !ekan Hello,IAmAStringSnake! ---------- Python Python ---------- P ngPu Code r i z d G o m z n o gram lesA …

30
標準入力を反転して標準出力に配置する
要件: 無制限の長さの改行/キャリッジリターンを含む標準入力を入力します(システムメモリによってのみ制限されます。つまり、プログラムに固有の制限はありません。) 入力の逆を標準出力に出力します。 例: 入力: Quick brown fox He jumped over the lazy dog 出力: god yzal eht revo depmuj eH xof nworb kciuQ 最短勝。 リーダーボード: var QUESTION_ID=242,OVERRIDE_USER=61563;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var …
58 code-golf  string 

11
新しいサイトのデザイン!
サイトのデザインを変更するユーザースクリプトがない場合(または変更する場合でも)、サイトのデザインがあることに気付くはずです。 (今11月です) それで、祝うために、この設計を遡及的に適用するプログラムを作成しましょう(もちろん、単純化しすぎています)! したがって、最も重要な変更は次のとおりです。 私たちの新しい名前は現在、Code Golf and Coding Challengesです 私たちのサイトはデフォルトの青色ではなくなり、代わりに素敵な濃い緑色になりました したがって、文字列を指定して、変更します。 PPCG に CGCC Programming Puzzles {non-whitespace} Code GolfCode Golf {same-thing} Coding Challenges(例えば、Programming Puzzles + Code Golf、and Code Golf、および& Code Golfすべてに変更されるであろうCode Golf + Coding Challenges、and Coding Challengesと& Coding Challenges。 #abcto #acb(青を緑に、またはその逆に入れ替えます-緑が論理的に青にならないという事実を無視しますが、色のシフトを複雑にしたくない) #abcdef〜#abefcd(上記と同じ) カラースワップの場合、から0-9までの16進数を受け入れる必要があることに注意してくださいa-f。必要な16進数字の大文字小文字を選択できますが、入力から出力まで一貫して同じでなければなりません。 置換では大文字と小文字が区別される場合があり、そうでない場合は、出力の動作を指定してください。 置換は、文字列が単語の境界(の開始を含む)で囲まれている場合にのみ発生します#。言い換えると、指定された各置換は、一致が文字列の端にある場合、または(両側で)英数字以外の文字で区切られている場合にのみ発生します。 標準の抜け穴が適用されます。これはコードとゴルフのチャレンジなので、最短のコードが勝ちます! 例 PPCG -> CGCC …
57 code-golf  string 

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