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

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

4
CUSRS-完全に役に立たない文字列リファクタリングシステム!
前書き 私は、常にPPCGで発生するSBU(Short But Unique)チャレンジの大ファンです。CUSRSは文字列をリファクタリングするように設計されたシステムです。CUSRS関数は2つのパラメーターを取り、1つの文字列を出力します。 チャレンジ 以下を行うためのプログラム、関数、ラムダ、または許容可能な代替物を作成します。 (例として)与えられString input、次のように使用してString refactorリファクタリング:inputrefactor refactor文字列の形式になり((\+|\-)\w* *)+、例えば、(正規表現): +Code -Golf -lf +al 各セクションは、実行するリファクタリングアクションinputです。各プログラムにはポインターもあります。 + 文字列内のポインターの現在位置にその接尾辞(プラスなし)を挿入し、ポインターを0にリセットします。 各操作をinput文字列に適用し、結果を返す必要があります。 例: input: Golf +Code //pointer location: 0 output: CodeGolf //pointer location: 0 -接尾辞が見つかるまで、文字列を介してポインタをインクリメントします。接尾辞は文字列から削除され、削除されたテキストの左側にポインタが残ります。接尾辞が見つからない場合、ポインタは単に文字列の最後まで進行し、そこに残ります。 input: Golf -lf //pointer location 0 output: Go //pointer location 2 例 input: "Simple" "-impl +nip -e +er" …
11 code-golf  string 

7
建物解体
チャレンジ 毎秒1フロアのレートで特定の建物を解体するための完全なプログラム/機能を記述します。 入力 入力がある建物を通してSTDIN(またはあなたの言葉で呼ばれているもの)、または貫通ARGUMENT関数の。 t = 0 s | |#| {#} |# #| |# # #| |# # #| |# # #| TTTTTTT 入力は以下で構成されます: | フロアの開始と終了をマークします。 {、}爆発物で床をマークします。 # は装飾用の窓です。 それはそこ#にない床の中のどこにでもあるスペースです。 T 地面をマークします(取り壊すことはできません)。 * 爆発した床をマークします。 入力規則: 建物は1 |から始まり、地面で終わります(no(T)= no(char used in ground floor))。 窓#はすべてのフロア内のすべての奇妙な場所にあります。 T 入力の終了をマークします。 唯一の1階には爆発物で構成されています。 すべてのフロアは奇数で作られています。文字の。 床を下るとき、床は前の床と同じサイズにすることも、2文字大きくすることもできます。 入力のアレイとすることができるchars、またはstrings。 出力: …

2
繰り返しを解釈する!
この課題は、繰り返しに関する2チャレンジシリーズの最初の課題です。2つ目はすぐにアップします。 繰り返し(私がちょうど作っ何か)と呼ばれる言語では、無限の文字列が構成さ12345678901234567890...と、1234567890永遠に繰り返すことを。 数値を出力するには、次の構文を使用できます。 +-*/:これにより、繰り返し数字の文字列に演算子が挿入されます。 例: +-> 1+2= 3(間にandを+挿入)+12 +*-> 1+2*3= 1+6= 7(2つの演算子が現在使用されていることを除いて、上記と同じです) /-> 1/2= 0(繰り返しは整数除算を使用) //-> 1/2/3= 0/3= 0(繰り返しは複数の減算と除算で「左の関連付け」を使用します) 各演算子は、c' がない限り、左に1桁の数字が挿入されるように挿入されます(以下を参照)。 c:文字列の次の数字と連結します。 例: c+-> 12+3= 15(をc「継続」1し、次の数字と連結して2、を形成します12) +c-> 1+23=24 ccc -> 1234 ():数字を処理するための括弧。 例: (c+)*-> (12+3)*4= 15*4= 60(繰り返しは操作の順序を使用します) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:番号をスキップします(無限の文字列から番号を削除します)。 s+-> 2+3= 5(sスキップ1) csc- > 124(第一cconcats …

2
マルセルプルーストとマルコフ解読セキュリティサービスのT9テキスト
この挑戦は、もう精神的にPythonesqueであるかのように... マルコフ連鎖や暗号化技術の予備知識は必要ありません。 あなたはイギリスの警備サービスM1Sから重要な情報を入手する必要があるスパイです。M1Sのエージェントは、Wi-Fi信号が傍受される可能性があること、Android / iOSのセキュリティ脆弱性が悪用されることなどを十分に認識しているため、全員がNokia 3310を使用して、T9自動補完を使用して入力されるテキスト情報を送信しています。 あなたは以前に電話をハッキングしてagency報機関に配送し、キーロガーを素晴らしいプラスチックキーボードの下にインストールしていたので、入力した文字に対応する一連の数字を受け取るので、「ワシは巣から離れてエージェントに警告します」 84303245304270533808430637802537808430243687 ちょっと待って!一部のT9シーケンスはあいまいです(「6263」は「name」、「mane」、または「oboe」になる可能性があります。不明瞭になるほど、疑わしくなります!)、どうしますか?M1Sが使用する入学試験は、マルセルプルーストの傑作「過去の記憶」を15秒で要約することだけなので、chef-d全体の頻度分布に従って、前の単語の次に来る単語を選択します。プルーストの傑作! コードを解読して、元のメッセージを入手できますか? T9の原理 T9自動補完メカニズムは、次のように説明できます。上の図に示すように、アルファベット文字を数字にマップします。 abc -> 2 def -> 3 ghi -> 4 jkl -> 5 mno -> 6 pqrs -> 7 tuv -> 8 wxyz -> 9 <space> -> 0 <other> -> <is deleted> T9復号化装置は一連の数字を受け取り、それらのキーを押して入力できる単語を推測しようとします。標準の頻度表を使用することもありますが、さらに一歩進んで、マルコフ連鎖を使用して次の単語を予測しています! 学習サンプル コーパスは、プルーストの「物事過去の思い出」のこの重く取り除かバージョン(s/-/ /g、s/['’]s //gおよびs/[^a-zA-Z ]//g-仰せられた混乱所有格's!)もともとに掲載さアデレード大学のウェブサイト(この作品のテキストは、オーストラリアでのパブリックドメインです)。 テキスト全体が一つの長い単語のベクトルとして、一つの長い文として、1つの文字列として分析する必要があります(あなたの言語のためのより便利な方)、改行が取り除かれ、スペースで単語に分割。(単一のパラグラフファイルは、githubツールによって眉をひそめられる可能性があるため、提供していません。) …

2
ラングフォード弦
チャレンジの説明 ラングフォード文字列の順序のは、N次のように定義されています。 文字列の長さに等しく2*N、 文字列にNは英語のアルファベットの最初の文字が含まれ、各文字は2回表示されますが、 同じ文字の各ペアについて、あるMそれらの間の文字は、どこMアルファベットで、その文字の位置です(A = 1、B = 2、...、Z = 26)。 例えば、オーダーの2つのだけの可能なラングフォード文字列が3あるBCABACとCABACB。ご覧のとおり、これらの両方の文字列にはA、2つの文字の間に1つの文字、2つの文字の間に2つの文字、Bおよび3つの文字の間に3つの文字がありCます。正の整数を指定するとN、すべての順序のラングフォード文字列を出力しますN(合理的な形式で:改行で区切って1つずつ印刷し、リスト/配列を返します...)。 サンプル入力/出力 3: [CABACB, BCABAC] 4: [DACABDCB, BCDBACAD] 5: # no output # 7: [GCFBECBDGFEADA, GBFCBDECGFDAEA, GBDFBCEDGCFAEA, GCAFACDEGBFDBE, GADAFCEDGCBFEB, GACAFDCEGBDFBE, GDAEAFDCGEBCFB, GBDEBFCDGECAFA, EGBFCBEDCGFADA, CGDFCBEDBGFAEA, EGDAFAEDCGBFCB, EGBCFBECDGAFAD, AGABFDBECGDFCE, EGADAFECDGBCFB, AGABEFBCDGECFD, BGDBCEFDCGAEAF, FBGDBCEFDCGAEA, BFGBAEADFCGEDC, CFGACADEFBGDBE, EAGAFBEDBCGFDC, BCGBFCEADAGFED, DAGAFDBECBGFCE, EBGCBFECDAGAFD, CEGDCFBEDBGAFA, CEGBCFBEDAGAFD, …
11 code-golf  string 

2
文字列の実行を計算する
W. Rytterによる文字列の実行数から取られた以下の定義を考慮してください。単語、文字列、部分文字列はすべてほぼ同義語であることに注意してください。 文字列内の実行は、文字列内の拡張不可能な(同じ最小期間を持つ)定期的なセグメントです。 単語wの周期pは、この方程式の両側が定義されるたびにw [i] = w [i + p]となるような正の整数pです。per(w)がwの最小周期のサイズを示すものとします。per(w)<= | w | / 2の場合、単語wは周期的であると言います。 たとえば、文字列を考えますx = abcab。per(abcab) = 3としてx[1] = x[1+3] = a、x[2]=x[2+3] = bより短い期間はありません。abcabしたがって、文字列は周期的ではありません。ただし、文字列ababはper(abab)= 2のように周期的です。 文字列wの実行(または最大周期性)は、j> = iの区間[i ... j]です。 w [i ... j]は、周期p = per(w [i ... j])の周期的な単語です。 それは最大です。正式には、w [i-1] = w [i-1 + p]もw [j + …
11 code-golf  string 

5
AdamNタイルを印刷する
Adam7は、PNGなどのラスターイメージ用のインターレースアルゴリズムです。Adam M. Costelloによって発明されたため、「Adam7」アルゴリズムと呼ばれ、特定のパターンを7回たどることによって生成されます。コードゴルフを本当に楽しくするAdam7アルゴリズムの素晴らしい点の1つは、パターンが奇数である限り、任意の回数だけ繰り返すことができることです。1996年にPNG標準が開発されたとき、9回の反復は複雑すぎ、5回の反復は効率的ではなかったため、7回の反復で十分であると見なされていました。 タイルの最初の反復は次のとおりです。 a ものすごく単純。これは「Adam1」タイルです。次の反復である「Adam3」タイルに到達する方法を次に示します。 最後のタイルがだったので1x1、高さと幅が2倍になり、次のタイルはになります2x2。まず、左上隅の「a」から始めます。 a- -- ステップ2、このパターンを右にコピーし、現在の文字を1つ増やします。 ab -- ステップ3、ステップ2と同じですが、右ではなく下にコピーします。 ab cc ブーム。「Adam3」タイル。「Adam5」も実行してみましょう。実際にアルゴリズムがどのように機能するかを確認できます。このタイルもまた2倍の大きさになり4x4ます。繰り返しますが、a左上隅のから始めます。 a--- ---- ---- ---- このパターンを2倍にし、文字を増やして、右に移動します。 a-b- ---- ---- ---- 繰り返しますが、今回はダウンします。 a-b- ---- c-c- ---- 繰り返しますが、今回は右側です。 adbd ---- cdcd ---- 繰り返しますが、今回はダウンします。 adbd eeee cdcd eeee これが「Adam5」タイルです。Adam7タイルのASCII表現は次のとおりです。 afdfbfdf gggggggg efefefef gggggggg cfdfcfdf gggggggg efefefef gggggggg そして、ここに、Adam7タイルの各ステップの楽しいアニメーションがあります(ただし、いくつかのタイルを並べて実行します)。 …

8
ファイの三角形を描く
明確化:基本的に、これを作成する必要があります オイラーのtotient関数の名前はphiです。 phi(8)を計算してみましょう まず、0以下を含まない、8以下のすべての数字を後方にリストします 8 7 6 5 4 3 2 1 次に、8と因子を共有しない数字を見つけ(1はカウントしません)、その場所にa #を配置します。 8 # 6 # 4 # 2 # 数字を削除します。 # # # # - これを行いますが、出力を三角形にまとめます 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 非因子共有番号を出力する 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

7
クロスワードを読む
この形式へのパッキングに関するこの質問に触発されました。 ときどき、完成したクロスワードが表示され、私と同じようにいると、手がかりの解決策が実際に何であったかを知るのに迷惑をかけることができません。 入力: 2D文字列(任意の形式、改行区切り、2Dリストなど) 空白の四角は(スペース文字)で表されます 他のすべての正方形は小文字のアルファベットになります。 入力がスペースで埋められて長方形を形成すると仮定することができます 出力: 見つかった各単語 前後の単語を検索する必要があります 単語は少なくとも2文字の長さになります 重複する単語がある場合は、出現するたびに出力する必要があります 検証する必要はありません 単語は任意の順序で出力できます 厳密なフォーマット規則はありません テストケース: word e e step t d word, step, west, reed --- pies not no wasp pies, not, no, wasp, in, eons, stop --- igloo n word igloo, word, on

10
文字列をn個(または長さn個)に分割します
チャレンジ この課題では、入力の順序に応じて2つの異なる(ただし関連する)タスクを実行する必要があります。 あなたのプログラムは入力として文字列sと整数nを受け取り、 最初に来る場合s、長さの断片に分割されます。必要に応じて、最後の要素が短くなります。ns 最初に来る場合、等しい長sさのn断片に分割されnます。len(s)でない場合n、最初のlen(s) mod n要素の倍数は1つ長くなります。 これら2つの入力のみを使用できます。s数字のみが含まれることはありません。 ノート 逆マッピングを使用できます。それを行う場合は、回答でこれに注意してください。 s印刷可能なASCII文字のみが含まれます(改行は含まれません)。 これらの2つのタスクを直接解決するビルトインを使用することはできません。他のすべてのビルトインは許可されます。 同じソースから両方の引数を取得する必要があります。 引数を順序付きリストまたは明確な順序である限り明確に示すその他の形式で引数を受け取ることができます。 入力を1つの文字列/ストリームとして受け取り、有効な入力(ヌルバイトなど)ではない文字を使用してそれらを区切ることができます。 n常にsゼロ以下の長さと等しくなります。 特定のピースとその順序を明確に示している限り、結果のリストを適切な形式で出力できます。 例 入力: programming, 3 11は3で割り切れないため、最後の要素には2文字しか含まれていません。 出力: ["pro", "gra", "mmi", "ng"] 入力: 3, programming 11は3の倍数ではないため、最初の2つの要素は1つ長くなります。 出力: ["prog", "ramm", "ing"] ルール 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最も少なくなります。Tiebreakerは以前の提出です。 テストケース このPythプログラムでテストケースが生成されました(ビルトインを使用しているため、有効な回答はありません)。@FryAmTheEggmanの基本バージョンを提供してくれてありがとう! 3、helloworld-> ['hell'、 'owo'、 'rld'] helloworld、3-> ['hel'、 'low'、 'orl'、 …
11 code-golf  string 


1
ジェイソンが彼のJSONをフォーマットするのを手伝ってください
Jasonには大きなJSONがありますが、判読できないため、彼はそれをきれいにする必要があります。 フォーマット仕様 JSONには4つの異なるタイプがあります。 数字; ただ0-9 ストリング; で"エスケープされた二重引用符付き文字列\ 配列; で区切られ[]、アイテムはで区切られ,、アイテムはこれらのタイプのいずれかになります オブジェクト; で区切られ{}、formatはkey: valuekeyが文字列で、valueはこれらのタイプのいずれかです 間隔 配列には、項目間のコンマの後にちょうど1つのスペースが必要です。 オブジェクトには、キーと値の間にスペースが1つだけあるはずです。 : くぼみ 各ネストレベルは、以前よりも2インデントされます 各オブジェクトのキーと値のペアは、常に独自の行にあります。オブジェクトはインデントされます 配列に別の配列またはオブジェクトが含まれる場合、配列は複数行にわたってインデントされます。それ以外の場合、配列は1行のままです ルール このタスクを単純化するビルトインは許可されていません。 いつものように、標準的な抜け穴は許可されていません 例 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

3
スライディングキャピタル
背景 英語のアルファベットが大文字で行に書かれていることを想像してください- ABCDEFGHIJKLMNOPQRSTUVWXYZ。特別な可変幅のレンズがあり、列の上に配置すると、アルファベットの特定の「窓」が表示され、レンズの外側の文字は視界から隠されているとします。さらに、このレンズには反り特性があるため、レンズ内の最初の文字とそれ以降の2文字ごとに小文字が使用されますが、残りの文字は大文字で表示されます。 たとえば、私たちは、アルファベットの真ん中のどこかに置い長さ5のレンズを持っている可能性があり、私たちは見るでしょう. jKlMn(空白のショーを確保するために、ここで期間を導く) -ノートKとMまだ計上される、一方j、l、およびnすべての低いです-ケース入り。このレンズをアルファベットに沿って左から右にスライドさせると、異なる文字が表示され、異なる文字が大文字になります。ここでのタスクは、レンズがアルファベットに沿ってスライドするときに結果の文字を出力することです。 チャレンジ 入力整数を取り、0 < n < 27上記のレンズがアルファベットを横切ってスライドするときに表示される文字列を出力または返すプログラムまたは関数を作成します。 nより大きい値の場合1、レンズはアルファベットの左側から「ぶら下がる」ことから始まるためA、レンズの右端のスロットにのみ表示されます。したがって、出力の最初の行Aは、レンズの長さに応じて、大文字または小文字の1つになります。 同様に、レンズZの左端のスロットにある場合、レンズのスライドが終了します(つまり、出力の最後の行は常に25スペースに小文字が続くことを意味しますz)。 例 入力: 1 出力: a b c d e f g h i j k l m n o p q r s t u v w x y z 入力: 4 出力: A aB AbC …

9
空白を相互に埋める
対応する単語を表す下線のシーケンスを持つ2つの文字列の入力が与えられた場合、「空白」が埋められた文を出力します。 この課題を説明する最良の方法は、例です。入力例を次に示します。 programming _____________ and code golf programming puzzles ______ code ____ 次に、対応する出力を示します。 programming ___puzzles___ and code golf programming puzzles _and__ code golf このチャレンジでは、「単語」は1つ以上の小文字のシーケンスとして定義され、「空白」は1つ以上のアンダースコアとして定義されます(入力には常に小文字、スペース、アンダースコアのみが含まれます) 。入力文字列の単語と空白は単一のスペースで区切られ、文の単語と空白の数の合計は常に等しくなります。 チャレンジの目的は、すべての空白を正しい 単語で埋めることです。これは、スペースで分割したときに他の文字列の同じインデックスを占める単語です。 上記の例で「パズル」という単語で示されているように、単語は空白の中央に配置する必要があります。どちらの側にも同じ数の下線が残ります。 単語を正確に中央に配置できない場合は、余分なアンダースコアを左または右に配置できます(上記の例では「and」という単語)。 単語が収まるのに十分なアンダースコアが常に存在しますが、単語の長さと正確に同じ長さになる場合があります(上記の例では単語 "ゴルフ")。 両方の文字列の同じ位置に空白が存在することはありません。 入力/出力は次のいずれかになります(入力/出力は必ずしも同じメソッド経由である必要はありません)。 アルファベット、スペース、またはアンダースコア以外の文字で区切られた単一の文字列(改行またはコンマ区切りの文字列など) 配列/リスト/など。2つの文字列の 2つの関数/コマンドライン引数(入力のみ) これはcode-golfであるため、バイト単位の最短コードが優先されます。 上記の例をテストケースとして使用できます。次に、より大きなテストケースを示します(出力の2番目の文字列は、センタリング動作が異なるために若干異なる場合があります)。 lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ …
11 code-golf  string 

12
イーニー、ミーニー、ミニー、モー
前書き 幼年期の歌Eeny、meeny、miny、moeは、タグを再生するときに誰が「それ」だったかを選択するためによく使用されました。全員が輪になって、ランダムに選択された1人を指さします。彼らは歌うでしょう: Eeny、meeny、miny、moe、 つま先でトラを捕まえます。 彼が大声で叫ぶなら、彼を手放しなさい、イーニー、ミーニー、ミニー、モー 。 彼らはそれぞれの言葉を歌いながら、円の中の次の人を指さしました。最後の「萌え」が歌われたときに指さされるのは「それ」だろう。子どもたちはすぐに立ち上がって散ります。 ゴール 入力、子の数、および指示されたときに歌われた単語をリストする、最短のプログラムをバイト単位で実装します。 勝者は1週間で選出されます。 入力 STDINから、単一の正の整数、子の数。これは、歌の単語数よりも多い場合があります。 出力 STDOUTに、各行が子を表し、ポイントされている間に歌われる単語を含むリストを書き込みます。子が多すぎる場合、空の行が省略される場合があります。 必要条件 常に最初の子供から始めてください。 句読点なしで単語を表示します。 最後の「萌え」は「萌え!」として強調されるべきです。句読点を含む。 例 入力 3 出力 Eeny moe tiger toe hollers go miny meeny Catch by If let Eeny MOE! miny a the he him meeny 入力 7 出力 Eeny by him meeny the …

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