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

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

7
Base85エンコーディング
チャレンジ ASCII印刷可能文字を含む単一行の文字列の入力を受け取り、Base85でエンコードされた同じ文字列を(ビッグエンディアン規則を使用して)出力できるプログラムを記述します。入力は常に100文字以下であると想定できます。 Base85のガイド 4オクテットは、(通常)5つのBase85文字にエンコードされます。 Base85文字が範囲!にu及び- (117 ASCII 33)z(ASCII 122)。 エンコードするには、4オクテット(32ビット数)で85による除算を継続的に実行し、(各除算の後に)残りに33を加算して、エンコードされた値のASCII文字を取得します。たとえば、このプロセスの最初のアプリケーションは、エンコードされたブロックの右端の文字を生成します。 4オクテットのセットにnullバイトのみが含まれる場合、それらはのz代わりにとしてエンコードされ!!!!!ます。 最後のブロックが4オクテットより短い場合は、ヌルバイトが埋め込まれます。エンコード後、パディングとして追加されたのと同じ数の文字が出力の最後から削除されます。 エンコードされた値の前後には<~、が必要~>です。 エンコードされた値には、空白を含めないでください(このチャレンジのため)。 例 In: easy Out: <~ARTY*~> In: test Out: <~FCfN8~> In: code golf Out: <~@rGmh+D5V/Ac~> In: Programming Puzzles Out: <~:i^JeEa`g%Bl7Q+:j%)1Ch7Y~> 次のスニペットは、指定された入力をBase85にエンコードします。 コードスニペットを表示 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script>String.prototype.toAscii85=function(){if(""==this)return"<~~>";for(var r=[],t=0;t<this.length;t+=4){for(var i=(this.substr(t,4)+"\x00\x00\x00").substr(0,4),o=0,n=0;4>n;n++)o=256*o+i.charCodeAt(n);var s=[];for(n=0;5>n;n++){var e=o%85;o=(o-e)/85,s.unshift(String.fromCharCode(e+33))}r=r.concat(s)}var a=4-this.length%4;return 4!=a&&r.splice(-a,a),"<~"+r.join("").replace(/!!!!!/g,"z")+"~>"};</script><style>#in,#out{margin:20px;width:400px;resize:none}</style><input id="in" type="text" value="Base85"><button onclick="$('#out').text($('#in').val().toAscii85())">Submit</button><br><textarea id="out" rows=5 disabled></textarea> …

4
あなたの言葉を比較検討してください!
チャレンジ 印刷可能なASCII文字(コード)で構成される、それぞれ30までの長さの2つの文字列が与えられた場合、それらをコードの最小バイトのバランススケールに配置します!これは次の手順で構成されます。[ 32 、126 ][32、126][32, 126] 文字列の重みを計算して比較する 適切に傾斜したASCIIアートスケールを選択する 二つの弦をはかりの上に置きます 文字列は、配列、2つの引数、またはその他の適切なメソッドとして渡されます。 文字列の重みは、その文字列の文字の重みの和として定義されます。 スペースのウェイトは0()です 小文字の重みは2(abcdefghijklmnopqrstuvwxyz)です 大文字の重みは4(ABCDEFGHIJKLMNOPQRSTUVWXYZ)です 他のすべての記号の重みは3(!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~)です。 スケールは次のようになります。 。_ | _- * / \ |-* / \ _- * | / \ _- * | / \ / \ | * ------ * / \ | / \ | / \ | …

17
英数字のラインとカーブのカウント
入力文字列が与えられたら、それが持っている線と曲線の総数を出力するプログラムを書きます。 チャレンジ STDIN、またはその他の入力メソッドから入力を受け取ります。 出力STDOUT、または任意の他の出力方法、直線と曲線の総数は、文字列に含まれるこの順序でコードスニペットに、以下の表に基づいて、。 英数字以外の文字は無視してください。 標準の抜け穴は禁止されています。 これはcode-golfなので、最短のコードが優先されます。 明確化 線と曲線は、Stackexchange forで使用されるフォントによって決まりcode blocksます。 円(のようなO, o, 0)と点(i, j)は、それぞれ1つの曲線と見なされます。 文字列、文字のリスト、文字のストリーム、バイトコードなどを入力できます。 出力は、整数の配列などの整数、カンマ区切りの文字列のタプルことができ、二つの数が別々でなければならないので、104有効ではありません、しかし10,4、10 4、10\n4、[10,4]、(10, 4)、などです。 見出しと末尾の空白は完全に許容されます。 入力と出力の例 # Format: str -> line, curve hi -> 4, 2 HELLO WORLD -> 20, 4 l33+ 5pEak -> 13, 8 +=-_!...?~`g@#$%^ -> 1, 2 9001 -> 5, 3 O …

16
MQTTサブスクリプショントピックの一致
バックグラウンド MQTT(メッセージキューテレメトリトランスポート)は、ISO標準のパブリッシュサブスクライブベースのメッセージングプロトコル(Wikipedia)です。 各メッセージには、次の例のようなトピックがあります。 myhome/groundfloor/livingroom/temperature USA/California/San Francisco/Silicon Valley 5ff4a2ce-e485-40f4-826c-b1a5d81be9b6/status Germany/Bavaria/car/2382340923453/latitude MQTTクライアントは、ワイルドカードを使用してメッセージトピックをサブスクライブできます。 シングルレベル: + 以降のすべてのレベル: # たとえば、サブスクリプションmyhome/groundfloor/+/temperatureは次の結果を生成します(太字の不適合): ✅MYHOME /地上階/リビング/温度 ✅MYHOME /地上階/キッチン/温度 ❌MYHOME /地上階/リビング/ 輝度 ❌MYHOME / firstfloor /リビング/温度 ❌ ガレージ /地上階/ 冷蔵庫 /気温 サブスクリプション+/groundfloor/#がこれらの結果を生成するのに対し、 ✅myhome / groundfloor / livingroom / temperature✅myhome / groundfloor / kitchen / brightness✅garage / groundfloor / fridge / …

4
バドミントンサーブの関連部分
前書き: 現在、バドミントンに関連する課題は他に1つしかないことがわかりました。私は自分でバドミントンをしているので(過去13年間)、バドミントンに関連するいくつかの課題を追加すると思いました。ここで2番目(最初のものはここにあります): チャレンジ: バドミントンに関するいくつかのルールは、 サーブは常にネット上で斜めに行われます。 常にネットに平行で最も近いラインの後にサーブする必要があります。 提供できるエリアは、シングル(1対1)かダブル/ミックス(2対2)かによって異なります。 シングル(1対1)の場合、下の画像の青い領域がサービスを提供できる場所です。つまり、これは後ろのパーツ​​を含み、横のパーツを除外しています。 ダブルス/ミックス(2対2)の場合、下の図の緑色の領域がサーバーに許可されています。つまり、これは後ろのパーツ​​を除いて、横のパーツを含んでいます。 あなたがサーブするとき、あなたは列に立つことができません。しかし、シャトルがラインの上に着陸した場合、シャトルはまだ中にあります。 ここでバドミントンフィールドのレイアウト: チャレンジルール: 入力: 2つの入力が与えられます。 シングルまたはダブル/ミックスのどちらを再生するかを示すもの(つまりブール値) あなたは(つまりから提供していたブロックを示すために何か[1,2,3,4]または['A','B','C','D']上の写真で使用されます)。 出力: 現在のサーブ(ネットを含む)に関連する行のみ。これFには、どこからTサーブするかを示すための複数の行と、潜在的にサーブする場所を示すための複数の行が含まれます。 実際には、指定されたエリアのどこからでもサービスを提供することが許可されていますが、サービスを提供する人は常に、ネットの中央に近いサーブエリアの隅に立っていると想定しています。F。そして、彼らは彼らが奉仕しなければならないエリアの四隅のいずれかに奉仕します、それはあなたがTsを配置する場所です。 ASCIIアートとして、バドミントンフィールド全体は次のようになります(数字を追加するので、自分で数える必要はありません)。 2 15 15 2 +--+---------------+---------------+--+ | | | | | 1 +--+---------------+---------------+--+ | | | | | | | | | | | | | | | | | | …

28
文字列からビットへの移行
仕事 コードポイントが0〜128(排他的)である1つ以上のASCII文字の入力文字列が与えられた場合、以下を実行します。 各文字を7ビットのASCIIコードに変換します(ASCIIコードが7ビット未満の場合は、先行ゼロビットを挿入します) すべてのビットを連結します(これにより、は文字数である7*nビットになりますn) このビットストリームの各ビットについて、前のビットと異なる場合は1を出力し、それ以外の場合は0を出力します。最初の出力ビットは常に1です。 例 入力: Hi 出力: 11011001011101 説明: 文字列「Hi」にはASCIIコードがあります 72 105 これはビットです: 1001000 1101001 そして、遷移ビットインジケータ: 11011001011101 これはコードゴルフです。最小バイト数が優先されます。 テストケース テストケース1: Hello World! 110110010101110011010101101010110001110000111110000110000001011101101010101100110001 テストケース2: %% COMMENT %% 1110111111011111100001100010010100001010110101011010011101010011111110011000001101111110111 テストケース3(Luis Mendoへのクレジット): ## 11100101110010 Luis MendoがMATLで9バイトの最短のソリューションを提供してくれました!

6
メニューのキーボードショートカットを生成する
メニューのショートカット 従来、ユーザーメニューには、などのキーボードショートカットを使用してアクセスしAlt + (a letter)たり、すべてのテキストボックスがフォーカスされていない場合(Gmailスタイル)に文字を入力するだけでアクセスしたりできます。 あなたのタスク 入力としてメニューエントリが与えられた場合、タスクは各メニューエントリに適切なショートカット文字を付与することです。 一連の単語-メニューエントリ(文字列の配列または同等の言語として)を受け入れ、辞書またはハッシュマップを1文字からメニューエントリに返す関数またはプログラムを記述します。 パラメータを使用して値を返すか、STDINを使用して結果をSTDOUTに出力できます。グローバル/スコープ変数がすでに入力されていると想定することはできません。 適切な文字を決定するアルゴリズム 基本的にそれは単語の最初の利用可能な文字です。以下の仮定と例を参照してください。 すべてのエントリの文字が利用できない場合、ショートカットはになります(a letter) + (a number)。エントリからどの文字を選ぶかは任意です。番号は0から始まり、1ずつ増加する必要があります-すべてのショートカットが一意になるようにします。以下の3番目の例を参照してください。 仮定 入力はセットになります。つまり、繰り返しはなく、すべてのエントリは一意です。 入力の長さは、負でない整数(言語のMAX_INTまで)にすることができます。 大文字と小文字の区別:入力では大文字と小文字が区別されます(ただし、大文字と小文字を区別しない場合は一意のままです)。結果には、元のエントリと元の大文字小文字が含まれているはずです。ただし、出力ショートカット文字は大文字と小文字を区別しません。 すべての入力単語が数字で終わるわけではありません。 「邪悪な入力」はテストされません。「邪悪な入力」とは、特定の文字のカウンターを10回以上インクリメントする必要があるようなものです。 例 以下の例はJSONですが、配列と辞書に相当する言語を使用できます。または、STD I / Oを使用している場合は、入力と出力に読み取り可能な形式(csv、さらにはスペースなど)を使用できます。区切り値)。 1。 Input: ['File', 'Edit', 'View', 'Help'] Output: {f:'File', e:'Edit', v:'View', h:'Help'} 2。 Input: ['Foo', 'Bar', 'FooBar', 'FooBars'] Output: {f:'Foo', b:'Bar', o:'FooBar', a:'FooBars'} 3。 …
10 code-golf  string 

7
コードゴルフ:フェイリーシーケンス(I)
チャレンジ このタスクでは、整数N(10 ^ 5未満)が与えられ、次数NのFareyシーケンスが出力されます。 入力Nは1行で指定され、入力はEOFで終了します。 入力 4 3 1 2 出力 F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 = {0/1, 1/1} F2 = {0/1, 1/2, 1/1} 制約 入力数は10 ^ 6の値を超えません 任意の言語を使用できます 最短のソリューションが勝ちます!
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 

2
Adaアレイをゴルフする
バックグラウンド Adaは、その簡潔さで正確に知られているわけではないプログラミング言語です。 ただし、その配列リテラル構文では、理論的にはかなり簡潔な配列指定が可能です。以下は、配列リテラル 構文の簡単なEBNF記述です(bottlecaps.deに渡すことができます: array ::= positional_array | named_array positional_array ::= expression ',' expression (',' expression)* | expression (',' expression)* ',' 'others' '=>' expression named_array ::= component_association (',' component_association)* component_association ::= discrete_choice_list '=>' expression discrete_choice_list ::= discrete_choice ('|' discrete_choice)* discrete_choice ::= expression ('..' expression)? | 'others' 簡単にするために、整数の1次元配列に限定します。つまり、式の値には整数のみを使用します。おそらく、将来の課題で、より高度なもの(変数や多次元配列の宣言など)を試すことができます。整数リテラルを使用する必要はありません。 わかりやすくするために、Ada配列リテラルとpython-esqueの同等の表現の例をいくつか示します。 (1, 2, …

15
再帰的な頭字語を見つける
前書き 再帰的頭字語は、例えば、含まれているか、それ自体を意味する頭字語である。 Fishための再帰的頭字語であり得るFish is shiny heroことも頭字語自体が含まれて注意してください。別の例はHi-> Hi iglooです。またはppcg paints->ppcg paints cool galaxies pouring acid into night time stars したがって、基本的に、各単語の最初の文字が最初の単語を表す場合、文は再帰的な頭字語です。 チャレンジ スペース文字で区切られた1つ以上の単語の文字列を受け取り、再帰的な頭字語を出力するか、それが不可能な場合は空の文字列を出力するプログラムを作成します。例えば、のような文字列のための再帰的頭字語を作ることは不可能であるppcg elephantあなたが取ることによって開始するためpにppcg、次に取った後、頭字語にそれを追加することeからelephant。しかし、頭字語は現在「pe ..」と綴り、「pp ..」と矛盾するため、今では矛盾があります。これは、たとえばにも当てはまりhiます。あなたはhfrom をとりますhiが、文はこれで終わり、スペルアウトする文字はなくなり、一致しないhiものだけが残ります。hhi。(文字列には、頭字語の文字数以上の単語が必要です) 入力と出力は大文字と小文字を区別しません 制限事項 プログラムに入力されたものはすべて有効な英単語になります。ただし、有効な英語の単語も出力する必要があります(データベースを使用するか、26文字ごとに単語を保存できます)。 標準の抜け穴とデフォルトのIOルールが適用されます テストケース hi igloo -> hi ppcg paints -> (impossible) ppcg paints cool giraffes -> ppcg ppcg paints cool galaxies pouring acid …
10 code-golf  string 

26
3つの整数を取り、整数とアルファベット文字のリストを返す関数
チャレンジ 入力としてa、3つの正の整数、、bおよびcを使用します。これらの整数を使用して、最初にの手順で、範囲[0, c](両端を含む)にシーケンスを作成しますb。たとえば、のa=4, b=2, c=100場合、シーケンスはになります[0,2,4,...,96,98,100]。 で割り切れるこのシーケンスのすべての数値についてa、小文字の次の文字に置き換えます。「a」で始まり、「z」に達した後、「a」に折り返します。 例: 入力:a=4, b=2, c=100 出力:a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z チャレンジルール: あなたはそれを取ることができるa、bとcどこ、唯一の正の整数ですb ≤ a ≤ c。 はのa倍数であると想定できbます。 あなたcはで割り切れると仮定することができbます。 推奨される出力は、上記のように単一の連結された文字列ですが、リスト/配列も許容されます。 テストケース: Input: a=4, b=2, c=100 Output: a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z Input: a=9, b=3, c=174 Output: a36b1215c2124d3033e3942f4851g5760h6669i7578j8487k9396l102105m111114n120123o129132p138141q147150r156159s165168t174 Input: a=10, b=2, c=50 Output: a2468b12141618c22242628d32343638e42444648f Input: a=25, b=1, c=25 Output: a123456789101112131415161718192021222324b Input: a=6, b=6, c=48 Output: …

30
アルファベットポジションファインダー
Codewars Kataに触発されました。 あなたの目標は次のような入力文字列を取ることです: "'Twas a dark and stormy night..." 次のように、スペースで区切られ、アルファベット以外の文字を無視して、アルファベットの各文字の位置を含む文字列を返します。 "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" 追加の課題として、元の文字列の数字を自分自身+ 27に置き換えることができます。たとえば、"25"になり"29, 32"ます。これは完全にオプションです。 あなたは1-インデックスを使用する必要があります('a'==1、'b'==2、など) 追加のルール: 配列ではなく文字列を返す必要があります。 末尾の空白は問題ありません。 勝者はバイト数が最も少ないです。 幸運を!

7
自由形式の日付を読む
以下の形式のいずれか(すべて同じプログラムで処理する必要がある)で記述された日付を指定して、有効なに解析しますyyyy/mm/dd date。 17th May 2012 March 14th, 2016 20 February 2014 September 14, 2017 Sunday, June 8, 2015 ルール 日付が無効になる場合があります。月または年の月数が正しくない場合は、両方のケースを処理する必要があります。エラーになるか、一貫した偽の値を返すかのどちらかを選択します。(ただし、上記のテンプレート形式を使用します) 2桁の出力を作成するには、10未満の日と月のパディングを使用する必要があります。 月の名前は常にフルネームであり、3文字の短縮形に短縮されません。 年は常に0000〜9999の範囲内であると想定できます。 負の数は処理する必要はありません。 完全なプログラムまたは関数を作成して、出力を任意の形式にして、コンソールに出力したり、関数から返すことができます。 入力が常に文字列であり、出力が常に文字列である必要がある場合は、配列内の単一の引数として受け取ると短くなります。["17th May 2012"]あなたはそうすることができ、出力は同じになる可能性があります["2012/05/17"] 入力のスペルが正しいと想定できます。 ボーナス:ここでチャレンジが嫌いなcos;) あなたはまたの入力フォーマットを許可するように管理することができた場合The Fourteenth of March, 2016、またはMarch the Fourteenth, 2016あなたが余分かかる場合があります20バイトの少ない1その結果1よりも最終的なバイト数でコードオフ。 スペルの混乱を避けるために、各曜日の完全な筆記番号を以下に示します。 First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, …
10 code-golf  string  date 

16
ちょっと待って…また何を言うつもりだったの?
先生が私に話すように言ったとき、私が言いたかったことをしばしば忘れます。これを解決するためのツールを作ってくれませんか? 要件: プログラムは次のようにループする必要があります。 まず、入力を取ります 入力が空の場合、最後に保存された質問を出力します。 それ以外の場合は、入力を質問として保存します。 ノート: 質問が保存されていない場合、入力が空になることはありません。 明確化:プログラムは複数の質問を保存する必要はありません。 もともとは複数保存したかったのですが、多くの人に誤解されて変更しました。 これはcode-golfなので、バイト数が最も少ないコードが優先されます。
10 code-golf  string 

4
アスキーダンクスター
入力の説明 文字列(最良の結果を得るには、すべての文字が印刷可能で、幅が同じである必要があります)。 出力の説明 パターンに従うキャラクターの星: 0 0 0 1 1 1 222 0123210 222 1 1 1 0 0 0 ここで0、1...は文字列の後続の文字です。出力は必ずしも1つの文字列である必要はありません-コンソールにスター文字を1文字ずつ出力することは問題ありません。 例 >> star('overflow') >> o o o v v v e e e r r r f f f l l l ooo overflowolfrevo ooo l l l f f …

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