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

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

12
KITTカーアスキーアート
80年代のテレビシリーズKnight Riderは、KITTと呼ばれるインテリジェントな自己認識型の車を搭載していました。車の一つの特徴的な側面は、にKITTを許さフロントマウントスキャナバーだった(と見ている「を参照してください。」怪しいですまた、以前の別のテレビシリーズのファンにはなじみがありました)。 この写真に見られるように、スキャナーには8つのライトがありました。 図のようにライトが「移動」しました このアニメーション画像に。 あなたが今推測しているように、あなたの仕事は、ASCIIアートの動く光でスキャナーバーを再作成することです。 チャレンジ 整数をt指定すると、次のように定義された、その瞬間のスキャナーバーの状態を出力します。 スキャナーは8つのライトで構成されています。 どの時点でも、ライトの1つがアクティブになり、として表示され#ます。時間にアクティブであった光t-1とt-2今さ淡色、およびとして示されています+。現在アクティブなものと一致しない限り。残りのライトは消灯していますで、として表示され-ます。 アクティブライトは左から右に移動し、次に右から左に移動します。 それぞれの正確な出力をt以下に詳しく説明します。 0 --> #++----- % The leftmost light is active, and it just came from the right. % The two neighbouring lights are dimmed 1 --> +#------ % The active light has bounced to the right, and it is …

25
爆発したサフィックス
ASCII文字列を指定して、その展開されたサフィックスを出力します。たとえば、文字列がの場合、abcde5つのサフィックスがあり、最長から最短の順に並べられています。 abcde bcde cde de e 各サフィックスはその後さ爆発という接尾辞でその一インデックス付きの場所として何回もコピーされる各文字を意味し、。たとえば、の接尾辞を分解するとabcde、 abcde 12345 abbcccddddeeeee bcde 1234 bccdddeeee cde 123 cddeee de 12 dee e 1 e 全体として、展開されたサフィックスabcdeは abbcccddddeeeee bccdddeeee cddeee dee e ルール これはコードゴルフなので、最短のコードが優先されます。 入力は、印刷可能なASCII文字で構成されます。(これは改行を除外しますが、スペースを含みます。) 出力では、各文字列が個別の行に表示されます。 各行には末尾のスペースを使用できますが、末尾に余分な改行がある場合があります。 テストケース '' 'a' a 'bc' bcc c 'xyz' xyyzzz yzz z 'code-golf' coodddeeee-----ggggggooooooollllllllfffffffff oddeee----gggggoooooolllllllffffffff dee---ggggooooollllllfffffff e--gggoooolllllffffff -ggooollllfffff …
20 code-golf  string 

4
部分文字列から文字列を特定します
前書き 以前に、できる限り少ないクエリタイプの操作を使用してオブジェクトを再構築するという考え方の2つの 課題を作成しました。これは3番目になります。 タスク 入力はSアルファベットabcとその長さの空でない文字列であり、出力はですS。制限なしで、これはもちろん簡単な作業です。問題は、S直接アクセスすることが許可されていないことです。できるのは、他の文字列でSあるfunctionを呼び出すことだけです。in の出現回数をカウントします。重複するオカレンスは個別としてカウントされるため、実際には次のようなインデックスの数を返します。num_occur(T, S)Tnum_occurTSnum_occur(T, S)i S[i, i+1, …, i+length(T)-1] == T たとえば、num_occur("aba", "cababaababb")を返し3ます。num_occur(S, S)を返すことにも注意してください1。の結果num_occur("", S)は未定義であり、空の文字列で関数を呼び出さないでください。 要するに、あなたが取る関数やプログラムを書く必要がありますSし、length(S)入力として、呼び出し、num_occurいくつかの短い文字列とにS何回か、再構築しS、その情報を返すことから。 ルールとスコアリング あなたの目標はnum_occur、できるだけ少ない呼び出しを行うプログラムを書くことです。ではこのリポジトリは、という名前のファイルを見つけますabc_strings.txt。このファイルには、長さ50〜99の100行の文字列が含まれています。スコアはこれらの入力に対する呼び出しnum_occurの合計数であり、スコアが低いほど優れています。ソリューションは、実行中にこの番号を追跡し、終了時に印刷することが望ましいです。文字列は、から一様にランダムな文字を選択して生成されabcます この文字列生成方法に対して最適化することはできますが、文字列自体は最適化できません。 提出する前にテストケースでソリューションを実行する必要があることを除いて、時間制限はありません。ソリューションはS、テストケースだけでなく、有効な入力に対して機能する必要があります。 num_occur他の人を使用していない場合は、実装も共有することをお勧めします。ボールを転がすために、Pythonでの実装を次に示します。 def num_occur(needle, haystack): num = 0 for i in range(len(haystack) - len(needle) + 1): if haystack[i : i + len(needle)] == needle: num += 1 return …

19
全単射ベースでのカウント62
タスクは、次のような大文字を含む「a」から「999」までのすべての文字列を生成することです。 'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ... '8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba' など(ギャップを埋める)、オプ​​ションで空の文字列で始まります。 入力: プログラムが印刷しなければならない連続文字の量。 出力: 各文字列または行ごとに1つの文字列を含む配列 明確化: 順序は関係ありません。必要に応じて、最初に大文字または小文字を印刷できます。 出力はあらゆる種類の列挙型を返すことができ、特に配列である必要はありませんが、すべての組み合わせを印刷するのが最も簡単な方法ではないことを疑います。 入力3からすべての文字列を印刷することになる'a'(または'')へ'999'の入力、5最大'99999'のように。

24
指定された文字列で指定されたインデックスの周りの単語を選択します
Windowsでは、テキストをダブルクリックすると、テキスト内のカーソルの周りの単語が選択されます。 (この機能にはより複雑なプロパティがありますが、このチャレンジのために実装する必要はありません。) たとえば|、にカーソルを合わせabc de|f ghiます。 次に、ダブルクリックすると、部分文字列defが選択されます。 入出力 文字列と整数の2つの入力が与えられます。 あなたの仕事は、整数で指定されたインデックスの周りの文字列の単語部分文字列を返すことです。 カーソルは、指定されたインデックスの文字列の文字の直前または直後に置くことができます。 直前に使用する場合は、回答に明記してください。 仕様(仕様) インデックスは単語内にあることが保証されているため、abc |def ghiやなどのエッジケースはありませんabc def| ghi。 文字列には、印刷可能なASCII文字(U + 0020からU + 007Eまで)のみが含まれます。 単語「言葉」は正規表現で定義され(?<!\w)\w+(?!\w)、\wによって定義される[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]、または「アンダースコアを含むASCIIで英数字」。 インデックスは1インデックスまたは 0 インデックスにすることができます。 0インデックスを使用する場合は、回答で指定してください。 テストケース テストケースには1インデックスが付けられ、カーソルは指定されたインデックスの直後にあります。 カーソル位置はデモンストレーションのみを目的としており、出力する必要はありません。 string index output cursor position abc def 2 abc ab|c def abc def 5 def abc d|ef abc abc 2 …
20 code-golf  string 

1
子犬コマンド
このpuppyユーティリティは入力としてファイル名を受け取り、子犬に期待することを正確に行います。 細断方法 歯でページを切り取ります入力ファイルを改行で分割します。 足で各ページを切り開きます(改行を含まない)行ごとに、nなどのランダムな整数を選択し2 <= n <= # of characters in the lineます。行をn、ランダムな長さの空ではなく重複しない部分文字列に分割します。 フロア全体でシュレッドを散布する各行の各部分文字列を、現在のディレクトリ内の一意のランダムなファイル名([a-zA-Z0-9]のみ、none、lengthを含む一貫した拡張子1 <= n <= 12)に出力します。現在のディレクトリ内の既存のファイル(現在のディレクトリにある場合は入力ファイルを含む)を上書きすることは、実行中のサブミッションに干渉しない限り許容されます。 明確化 考えられるすべてのファイル名を使い果たすことが可能な入力はありません。 ファイルは、印刷可能なASCII(序数32-127)と改行のみで構成され、UNIX / Linuxスタイルの行末(LF、WindowsスタイルのCRLFではありません)を使用します。 すべての出力ファイルに末尾の改行がある限り、出力ファイルの単一の末尾の改行は許容されますが、必須ではありません。入力ファイルに末尾の改行を含めるかどうかを選択できます。 入力の各行には、少なくとも2文字が含まれます。 選択されたランダム値は、指定された一連の値の一様なランダム分布から選択する必要があります。 言語がファイルI / Oを実行できない場合、代わりに入力ファイルの内容を入力として、出力ファイル名とそのファイルのテキストを表す文字列の出力ペアを取ることができます。ただし、あなたの提出物は受賞の資格がありません。 例 リファレンス実装: #!/usr/bin/env python3 import random import string import sys fname = sys.argv[1] with open(fname) as f: txt = f.read().rstrip().split('\n') for …

11
数値リストコンバーターを作成する
あるプログラムから別のプログラムに数字のリスト(ベクトル、配列...)をコピーアンドペーストしたいのですが、あなたが数字を持っている形式は必要な形式と一致しません? たとえば、MATLABでは、次のようなスペースで区切られたリストを使用できます。 [1 2 3 4 5] (you can also have it comma separated, but that's not the point) Pythonでは、そのリストを有効な入力にするためにコンマを挿入する必要があるため、次のように変換する必要があります。 [1, 2, 3, 4, 5] それを機能させるために。C ++では、次のようなものが必要になる場合があります。 {16,2,77,29} 等々。 すべての人の生活を簡素化するために、任意の形式のリストを取得*し、別の指定された形式のリストを出力するリストコンバーターを作成しましょう。 有効な括弧は次のとおりです。 [list] {list} (list) <list> list (no surrounding brackets) 有効な区切り文字は次のとおりです。 a,b,c a;b;c a b c a, b, c <-- Several …

18
Salesforceの15文字のIDを18文字に変換します
Salesforce CRM、すべてのオブジェクトは、大文字と小文字が区別される15文字の英数字のIDを持っています。好奇心urious盛な人は、実際にはbase-62番号です。ただし、データの移行と統合に使用されるツールは、大文字と小文字の区別をサポートする場合としない場合があります。これを克服するために、IDは大文字と小文字を区別しない18文字の英数字IDに安全に変換できます。そのプロセスでは、3文字の英数字のチェックサムがIDに追加されます。変換アルゴリズムは次のとおりです。 例: a0RE000000IJmcN IDを3つの5文字のチャンクに分割します。 a0RE0 00000 IJmcN 各チャンクを逆にします。 0ER0a 00000 NcmJI すべてのチャンクの各文字を1大文字の場合、または0そうでない場合は置き換えます。 01100 00000 10011 5桁の2進数ごとにi、位置の文字を取得しますi、大文字のアルファベットと数字の0〜5(ABCDEFGHIJKLMNOPQRSTUVWXYZ012345)を連結ます。 00000 -> A, 00001 -> B, 00010 -> C, ..., 11010 -> Z, 11011 -> 0, ..., 11111 -> 5` 降伏: M A T これらの文字、チェックサムを元のIDに追加します。 出力: a0RE000000IJmcNMAT 入力として15文字の英数字(ASCII)文字列を取り、18文字のIDを返すプログラムまたは関数を作成します。 入力の検証は、この質問の範囲外です。プログラムは、無効な入力で値を返すかクラッシュする場合があります。 このような式として(この課題些細な作りのSalesforce propretiary言語機能を使用しないでくださいCASESAFEID()変換、IdにString APEX&Cで)。 テストケース …
20 code-golf  string 

10
ブラケットバランス
括弧([{()}])およびその他の文字(A- Z、a- z、0- 9、句読点)を含む(おそらく空の)文字列が与えられます。次のルールに準拠しているかどうかを確認する必要があります。 括弧以外の文字は無視されます。 すべての開いたブラケット[{(には閉じブラケットがあり)}]ます。だから、[](許可されていません。 ブラケットは適切にネストされています。[(])許可されていません。 中括弧に角括弧を含めることはできません。単純な括弧には、中括弧または角括弧を含めることはできません。ですから[({})]、[{[]}]および({})許可されていません。ブラケットは同様のブラケットでネストできるため、使用[[{((()))}{{(())}}]()]{()}できます。 出力は、選択に応じた単一の真実/偽の値です。 最短のコードが優先されます。 テストケース b[[a{(/)}(())+={{}-}],] ->有効 ([h][e][l][l][o]) ->無効 [///[{(\/(arg()))}1{{((-)-2)}}]()]{()} ->有効 hi ->有効

9
デッドコード除去
デッドコードは何もせずに座っており、決して実行されないことを私たちに見つめています...しかし、今日は復canすることができます。 仕様 入力は複数行の文字列になります。 各行は、割り当てまたは式のいずれかです。 割り当て 割り当ては、<name> = number名前が文字、アンダースコア、数字のシーケンスであるが、数字で始まる形式ではありません。 変数は何度でも割り当てることができます。 表現 式は次の形式です <var_name OR number> <operation> <var_name OR number> ... 式は次の任意の組み合わせです。 定義済みの変数 基本的な算術演算子 +-*/ 数字(整数) 期待される出力 あなた出力冗長で文字列べき割り当て、割り当てのいずれかによって使用されることはありません表現、それを後に除去します。ので、予めご了承ください割り当てが追加の場合も冗長化することができます割り当て同じ変数には、前に実行される表現変数を使用して実行されます。 テストケース に a = 10 a * 3 でる a = 10 a * 3 に foo = 8 2 - 1 a = …

12
多項式のシンボリック微分
シンボリック識別1:ゴーン・シーフィッシン 仕事 stdin(1 <deg(p)<128)からxの多項式を取り込んで微分するプログラムを作成します。入力多項式は、次の形式の文字列になります。 "a + bx + cx^2 + dx^3 +" ... 各項の係数は整数です(-128 <a <128)。各用語は、1つのスペース、+、および別のスペースで区切られます。線形項と定数項は上記のように表示されます(つまり、no x^0またはx^1)。用語は次数の昇順で表示され、係数がゼロの累乗は省略されます。係数が1または-1のすべての項は、その係数を明示的に表示します。 出力はまったく同じ形式である必要があります。出力の係数は127 * 127 == 16129と同じくらい大きいことに注意してください。 例 "3 + 1x + 2x^2" ==> "1 + 4x" "1 + 2x + -3x^2 + 17x^17 + -1x^107" ==> "2 + -6x + 289x^16 + -107x^106" "17x …

16
文字列の中で最も出現するペアの文字を見つけるプログラムを書く
プログラムは、最もペアになっている文字を出力する必要があります。たとえば、プログラムに次の文字列が与えられた場合: "Sally's friend Bobby searched for seashells." 2回発生するLため"ll"、出力する必要があり、他のペアよりも頻繁に発生し"bb"ます。 ルール: 複数の文字が出現のための第一位を持っている場合は、アルファベット順にすべてのそれらの出力(例えば"Sally's friends Jimmy and Bobby rummaged for seashells."出力すべき両方LのAND M[または"LM"あなたが喜ば場合]、彼らはより頻繁に他のペアよりも発生し、両方のため。) 3倍、4倍などの文字は1つのペアとしてカウントされます(たとえば"lll"、in "willless"は1つのペアのみとしてカウントされLます)。 文字のペアは1ワードである必要があります(たとえば、"Sally's sociable friends Sammy and Bobby searched for fabulous seashells."出力する必要があります。出現回数がであるにもかかわらず、スペースで区切られているためではLありません)。S"ss""ll" 英語のアルファベットの文字のみを数える 大文字と小文字は区別されません(たとえば"Ss"、"SS"or と同じ"ss"で、すべてが1つのペアとしてカウントされSます)。 どこからでも入力を読むことができます。最短のコードが優先されます。

7
Scralphabetを最適化する
Scralphabet スクラブルタイルの通常の袋には、次の文字が含まれています(?他の文字を表すことができる空のタイルです)。 AAAAAAAAABBCCDDDDEEEEEEEEEEEEFFGGGHHIIIIIIIIIJKLLLLMMNNNNNNOOOOOOOOPPQRRRRRRSSSSTTTTTTUUUUVVWWXYYZ?? 文字には次の値があります。 {"A": 1,"B": 3,"C": 3,"D": 2,"E": 1,"F": 4,"G": 2,"H": 4,"I": 1,"J": 8,"K": 5,"L": 1,"M": 3,"N": 1,"O": 1,"P": 3,"Q": 10,"R": 1,"S": 1,"T": 1,"U": 1,"V": 4,"W": 4,"X": 8,"Y": 4,"Z": 10,"?": 0} スクラブルタイルの通常のバッグが与えられた場合、以下の条件が与えられた場合に、スコアが最高の非交差単語のセット(つまり、スクラブルボードではなく個々の単語)を構築します。 各単語のスコアはsum(letter_values) * length(word)です。 アルファベットの各文字で始まる単語を1つだけ含めることができます(したがって、最大26単語)。 有効なスクラブル語(この辞書から)のみを含めることができます。辞書をファイルから読んだり、ハードコーディングしたり(ugh)、Webサイトから削除したりできます。 すべてのタイルを使用する必要はありませんが、すべての未使用のタイルは単一の単語を形成し、同じ方法でスコア付けされ、スコアから減算されます。 必要に応じて、コードは2つの入力を受け入れることができます。バッグの内容を文字列として、およびPythonに類似した何らかの形式の文字値dict(上記)。または、バッグの内容と文字の値をハードコーディングできます。セット内の単語、それぞれのスコア、合計スコアを適切な形式で出力する必要があります。 最も高いスコアの単語セットが勝ちとなり、同点が最初に投稿されます。

3
Stack Exchangeの質問タイトルをプログラムにアナグラムする
Stack Exchangeには現在134の質問と回答のサイトがあります。これには、すべてのベータサイト(PPCGなど)が含まれますが、「マザーメタ」を除くエリア51の提案やメタサイトは含まれません。 この質問に答えるには、それらのサイトの1つを選択し、コードのすべての行がそのサイトの異なる質問のタイトルのアナグラムであるプログラムを作成します。そのサイトからの質問は、削除されていない限り使用でき、この質問の前に質問されました。 質問のタイトルには、リンクをクリックして質問の下にあるテキストボックスに表示されるすべての文字が含まれます。空白、mathjaxフォーマット、クレイジーなUnicode文字などです。(一度に多数の質問タイトルを照会する場合は、Stack Exchange APIを使用できます。)Titleedit 作成するプログラムは、すべてのStack Exchangeページの上部に確実に表示される文字列を出力する必要があります。 Questions Tags Users Badges Unanswered Ask Question この正確なテキストに加えて、オプションの末尾の改行が、プログラムが出力する唯一のものです。入力はありません。出力はstdoutに行くか、それが不可能な場合は、同様の代替手段に行く必要があります。 質問のタイトルのアナグラムのみでこれを行うのはややこしいかもしれないので、オプションで、任意の列のプログラムの各行に選択した文字を1つ追加することができます。すべての行に余分な文字が必要なわけではなく、行全体で同じ文字である必要はありません。文字は、行末記号以外のものでも構いません。行の文字からこの新しい文字を1つ引いたものは、質問のタイトルの完全なアナグラムのままです。 得点 あなたのスコアは(number of lines with no added character) + 2 * (number of lines with an added character)です。最も低いスコアが勝ちます。同点の場合、以前の回答が優先されます。 詳細 タイトルを使用したすべての質問へのリンクを提供する必要があります。 未使用のサイトを選択することをお勧めしますが、さまざまな理由から、他の人と同じStack Exchangeサイトを選択できます。 勝者が選択される前に使用した質問が削除された場合、提出は無効になるため、十分に確立された質問を選択することをお勧めします。 質問の一部でタイトルが編集されている場合、編集履歴に回答を投稿したときにタイトルが正しかったことが示されている限り、提出は引き続き有効です。 プログラム内のコメントは問題ありません。 質問のタイトルをニーズに合わせて編集するのは非常に悪い形式です。

30
ランレングスデコード
指定した文字列のランレングスデコードを実行するには、選択した言語で最短のコードを記述します。 文字列は、標準入力で次の形式で入力されます。 CNCNCNCNCNCNCNCN それぞれ C任意の印刷可能なASCII文字である可能性があり、それぞれがN数字である1と9(包括的)。 サンプル入力: :144,1'1 対応する出力: :4444,'
20 code-golf  string 

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