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

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

7
印刷可能なASCIIフロントに移動します
バックグラウンド 最前面への変換(MTF)は、エントロピーエンコーディング技術のパフォーマンスを向上させるために設計されたデータエンコーディングアルゴリズムです。 BZIP2圧縮アルゴリズムの後、それが適用されるバローズ-ウィーラー変換(に見られるようにバローズ、ウィーラー戻る小さい、容易に圧縮非負整数に繰り返される文字のグループを旋回する目的で、)。 定義 この課題のために、MTFの印刷可能なASCIIバージョンを次のように定義します。 入力文字列が与えられ、S、空の配列を取るR、列Dの各文字については、以下のすべての印刷可能なASCII文字の(0x7Eをへの0x20を)と繰り返しCのS: インデックス付加Cの中のDにR。 cをdの前に移動します。つまり、dからcを削除し、残りの前に追加します。 最後に、rの要素を元の dのインデックスとして使用し、対応する文字を取得します。 ステップバイステップの例 INPUT: "CODEGOLF" 0. s = "CODEGOLF" d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [] 1. s = "ODEGOLF" d = "C !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35] 2. s = "DEGOLF" d = "OC !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35 47] 3. s = …

8
文字列から単一行と複数行のコメントを削除します
ゴール 選択したプログラミング言語を使用して、Cプログラムを表す文字列からコメントを削除する最短のプログラムを作成します。 入力 文字列は任意の形式の入力として使用できますが、変数として使用することもできます。 説明書 次の2種類のコメントを削除します。 複数行コメントで始まり、/*で終わる*/ //Linuxスタイルの改行(LF、\n)で始まり、末尾が単一行のコメント 文字列内のコメントは削除されません。この課題のために、考慮する必要があるのは、"区切り文字列のみです。特に、'区切り文字リテラルの可能性は無視できます。3文字表記と行継続(/\<LF>*...)を無視することもできます。 例 入力: #include <stdio.h> int main(int argc, char** argv) { // this comment will be removed if (argc > 1) { printf("Too many arguments.\n"); // this too will be removed return 1; } printf("Please vist http://this.will.not.be.removed.com\n"); printf("/* This will stay */\n"); …

6
23940を思い出すための記憶
主要なシステムがあるニーモニックそれらがより容易に記憶することができるように言葉に番号を変換するための装置。 単語の発音に基づいていますが、チャレンジのために物事を簡単にするために、単語のつづり方のみを考慮します。これは、いくつかの誤った変換があることを意味しますが、それは大丈夫です。 簡略化されたメジャーシステムを使用して数値を単語に変換するには: それぞれ0をsまたはに置き換えますz。(一部は可能性がsあり、一部は可能性がありますz。以下も同様です。) それぞれを交換1しtたりdまたはth。 それぞれ2をに置き換えますn。 それぞれ3をに置き換えますm。 それぞれ4をに置き換えますr。 それぞれ5をに置き換えますl。 それぞれを交換6しjたりshまたはch。 それぞれ7をkor cまたはgorで置き換えますq。 それぞれ8をfまたはに置き換えますv。 それぞれ9をpまたはに置き換えますb。 可能であれば、文字をaehiouwxy任意の場所に追加して、実際の英語の単語を作成します。 唯一の例外はh、sまたはの後に挿入できないことcです。 数値は、実際には数字0〜9の任意の文字列(小数、コンマ、または記号なし)にすることができます。 単語には小文字のa〜zのみを含めることができます。 例 番号32はとして変換する必要があります?m?n?。ここで?、文字から作成された有限の文字列aehiouwxy(必要に応じて、無料のモノイドからの文字列)を表します。これが本当の英語の単語の中に作ることができる多くの方法があります:mane、moon、yeoman、など 番号05は?s?l?またはとして変換できます?z?l?。いくつかの可能性があるeasily、hassleとhazel。単語shawlは許可されhませんs。として誤って読み取られ65ます。 チャレンジ 0から9の数字のストリングを取り込んで、簡略化されたメジャーシステムニーモニックを使用して変換できるすべての単語を見つけるプログラムまたは関数を作成します。 プログラムは、すべての「本当の」英語の単語を定義する単語リストテキストファイルにアクセスできます。このファイルの各行には1つの小文字のazワードがあり、オプションで末尾に改行があると想定できます。以下は、テストに使用できる実際の単語のリストです。この単語リストファイルはf(またはそれより長い)呼び出され、便利なディレクトリにあると想定できます。 35バイトのペナルティ(スコアに35を加算)の場合、単語リストは既に文字列のリストとして変数にロードされていると想定できます。これは主にファイルを読み取れない言語用ですが、提出することでそれを利用できます。 プログラムは、入力数値を変換できる単語リスト内のすべての単語を出力する必要があります。これらは、1行に1つずつ(オプションの末尾の改行を使用して)stdout(または同様の)に出力する必要があります。または、関数の作成を選択した場合は、文字列のリストとして返すことができます。単語リストは必ずしもアルファベット順ではなく、出力もアルファベットである必要はありません。 可能な単語がない場合、出力(またはリスト)は空になります。空の文字列が入力されると、出力も空になります。 stdin、コマンドライン、または関数の文字列引数として入力を受け取ります。単語リストまたはそのファイル名は、入力の一部ではなく、数字列のみである必要があります。 単語リスト内の単一の単語のみが一致し、単語のシーケンスは一致しません。この単語noonはおそらくの結果の1つです22が、単語シーケンスno oneはそうではありません。 テストケース これが単語リストであるとします: stnmrljkfp zthnmrlshqfb asatanamaralajakafapa aizxydwwwnhimouooraleshhhcavabe zdnmrlshcvb zdnmrlshchvb sthnmrlchgvb shthnmrlchgvb bob pop bop bopy boppy 入力0123456789はzdnmrlshchvband を除くすべての長い単語を与える必要がありshthnmrlchgvbます: stnmrljkfp zthnmrlshqfb asatanamaralajakafapa …
19 code-golf  string 

30
文字列からバイナリ
これはコードゴルフの挑戦です。タイトルが言うように、ASCII文字列をバイナリに変換するプログラムを作成します。 例えば: "Hello World!" に変わるはず 1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001です。 注:特にpythの実装に興味があります。

13
シェルピンスキー層
はじめに、そのような下に線を追加することにより、パターンのようなシェルピンスキーの三角形/\を作成することができます... ゆるい枝/または\2つの枝に再び分割されます/\。 ブランチの衝突は、その\/下に何も(スペースはありません)死んでしまいます。 これらの規則を繰り返すと、 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHartによるインスピレーション) 正の整数Nを取り込んで、このパターンの最初のN行をstdoutに出力するプログラムまたは関数を作成します。必要以上に先行または後続のスペースはありません。 たとえば、入力が1出力の場合、 /\ 入力が2出力の場合 /\ /\/\ 入力が8出力の場合 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等々。 最小バイトのコードが優先されます。

9
ASCIIテキストからPBMビットマップファイルを生成する
PBM(ポータブルビットマップ)形式は、非常に単純なASCII白黒ビットマップ形式です。 文字「J」の例は次のとおりです(ウィキペディアのリンクからコピーアンドペースト): P1 #これは、文字「J」のビットマップの例です 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 …

10
彼らはどこから呼んでいますか?
国際電話をかける場合、電話番号の前に番号が所在する国を示すコードが付加されます。これらのコードはプレフィックスコードであり、他のコードのプレフィックスではありません。 さて、今日、あなたは電話を逃しました。そして、あなたはその電話がどこから来たのでしょうか。したがって、呼び出し元のコードを検索する必要があります。しかし、プレフィックスコードであるため、どこで終了するのかはよくわからないので、呼び出しコードを残りの番号から分離するプログラムを作成することにします。 入力 入力として、数字で構成される文字列を受け取ります0-9。最初の数桁は、以下にリストされている国の呼び出しコードの1つになります(これは、最初の数字がにならないことを意味します0)。国を呼び出すコードの後、入力の残りの部分には任意の順序でゼロ以上の数字が含まれます- 有効な電話番号であるとは限りません。プログラムは少なくとも15桁を含む入力を処理できる必要があります 出力 プログラムは、番号のプレフィックスである一意の国呼び出しコードを出力する必要があります。有効な出力は次のとおりです。 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 …

26
数字の文字列を単語から整数に変換します
先行ゼロを無視して、数字を単語として含む文字列を整数に変換します。 例 "four two"-> 42。 "zero zero zero one"-> 1。 仮定 提出は次のことを想定できます: 入力文字列は、スペースで区切られた数字の単語で構成されます。 すべての単語は有効で(「zero」..「nine」の範囲内)、小文字です。空の入力の動作は未定義です。 入力文字列は、常に範囲内の符号なしの数値を表しint、空の文字列ではありません。 得点 回答はバイト単位でスコアリングされ、バイト数は少ない方が良いです。

30
一般的な先行スペースを削除する
Pythonでコーディングする場合、関数内に複数行の文字列が必要になることがあります。たとえば、 def f(): s = """\ Line 1 Line 2 Line 3""" (バックスラッシュは、先頭の改行を削除することです) sただし、実際に印刷しようとすると、 Line 1 Line 2 Line 3 それは私たちが望むものではありません!先頭の空白が多すぎます! チャレンジ 英数字、スペース、および改行のみで構成される複数行の文字列が指定されている場合、各行の先頭からすべての一般的なスペースを削除します。各行には、少なくとも1つの非スペース文字が含まれることが保証されており、末尾のスペースはありません。出力には、出力全体または個々の行の前後に関係なく、余分な空白がない場合があります(1つのオプションの末尾の改行を除く)。 入力はSTDINまたは関数の引数を介して行われ、出力はSTDOUTまたは関数の戻り値を介して行われます。複数行の文字列を字下げしたり、Pythonのようなこの正確なタスクを実行するように設計された組み込み関数を使用することはできませんtextwrap.dedent。 これはcode-golfであるため、最小バイト数のソリューションが優先されます。標準の抜け穴が適用されます。 テストケース "a" -> "a" " abc" -> "abc" " abc\n def\n ghi" -> " abc\ndef\n ghi" " a\n b\n c" -> "a\nb\nc" " a\n b\n …

5
インタビュー:フロントナイン
インタビュー:フロントナイン これは、就職の面接の質問をプログラミングすることに触発された一連の課題の最初のものです。 潜在的な将来の上司が座っているオフィスに入ります。「さあ、座って」と彼は言う。あなたは緊張して座って、きびきびとしたプロの服装にしわがないようにします。彼はあなたの教育、以前の仕事の経験などについて多くの質問をします。あなたはほとんど正直にそれらに答え、あなた自身をより良くするためにあちこちに少し装飾を追加します。彼は前かがみになり、再び話し始めます。 「コードゴルフのことを聞いたことがありますか?」はい、あなたはゴルフのコードが好きで、あなたの自由な時間に頻繁にそれをします。「すごい。インタビューの最後の部分は技術的な試験です。一連の問題を解決するためのコードを書く必要があります...」彼はあなたに一枚の紙を渡します。あなたはすぐにそれを見ます。簡単です。なぜ彼はコードゴルフについて尋ねたのですか? 「これらの問題に対する解決策の合計サイズに基づいて採点されます。他のすべての候補者よりも低い得点が得られるなら、仕事はあなたのものです。」ああ。「ゴルフのように、18の問題があり、9の2つのセットに分かれています。お好きな言語を自由に使用して解決してください。聞いたことのあるすべての言語、 「がんばって!」 タスク タスク1:乗算表 番号を与えられたn範囲内の正の整数の入力、出力、乗算テーブルとして[1, n]。n範囲内になります[1, 12]。すべての数値は、テーブル内で左揃えにする必要があります。x左上隅に文字を使用します。 例: n=4 x 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16 n=10 x 1 2 3 4 5 6 7 8 9 10 …

12
空白を埋める
文字列に特定の関数セットがあるとしましょう。これらの関数は、空白またはmadlibを埋めるようなものですが、入力が1つだけで、それを使用してすべての空白を埋めることが異なります。たとえば、次のような関数があるとします I went to the ____ store and bought ____ today. この関数を文字列に適用cheeseすると、結果は次のようになります。 I went to the cheese store and bought cheese today. これらの関数は、空ではない文字列のリストとして表すことができます。ここで、空白は単に文字列間のギャップです。たとえば、上記の関数は次のようになります。 ["I went to the ", " store and bought ", " today."] この表現では、この種のすべての関数に対して1つの表現しかなく、各表現に対して1つの関数しかありません。 本当にすてきなことは、そのような関数のセットが合成中に閉じられることです。つまり、2つの関数の構成は、常にこれらの関数の別の1つです。たとえば、上記の関数を ["blue ", ""] (blue入力の先頭に追加する関数)関数を取得します: ["I went to the blue ", " store and …

22
ssTTsSTtRrriinInnnnNNNIiinngg
チャレンジ 文字列の最後の文字を除く各文字について、次の手順を実行します。 現在の文字を出力します。 続いて、次のリストから1〜5のランダムな回数をランダムに出力します(両端を含む)。 現在のキャラクター 文字列の次の文字 現在いるキャラクターのスイッチケースバージョン 文字列の次の文字のスイッチケースバージョン。 テストケース String -> SSSTSStrTrIiinIIngn , . , . , . Hello world! -> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS a aANnNddD C COCoooOOdeDe E GGGoOllFFf ノート 文字がアルファベットの一部である場合(AZおよびaz)にのみ、スイッチケースバージョンの文字を適用する必要があります。 …

8
Ternary-ifコンバーター
Java / .NET / C / JavaScript /など。ternary-ifを使用してif文を短縮できます。 例(Javaの場合): // there is a String `s` and an int `i` if(i<0)s="Neg";else if(i>0)s="Pos";else s="Neut"; ternary-ifで短縮できます: s=i<0?"Neg":i>0?"Pos":"Neut"; チャレンジ: 入力:単一の変数を設定する通常のif-else(ネスト可能)。 出力:変換されたternary-if。 チャレンジルール: 括弧なしですべてのif-elseケースが可能であると想定できます(したがって、各if / else-if / elseブロックには単一のボディがあります)。 各スペースの後の単一のスペースelse(を含むelse if)を除き、スペース、タブ、改行はないものと想定できます。 使用される変数名は常に単一の小文字([a-z])であると想定できます。 変数に指定される値は、次のいずれかです。 文字列(空白/タブ/改行なし)、二重引用符(すなわち囲まれる"Test"、"SomeString"、"Example_string"、など)。文字列にサブストリングifまたはが含まれることはelseなく、スペース、タブ、改行、(エスケープされた)二重引用符、または文字が含まれないことも想定できます=。文字を含めることができます><(){}[];?:!&|が、印刷可能なASCII範囲(['!' (33), '~' (126)])のみになります。 整数(すなわち0、123、-55、など) 小数(すなわち0.0、0.123、-55.55、など) 値が混在することはありません。したがって、割り当てられる変数はすべて整数であり、一部は整数ではなく、一部は文字列ではありません。 括弧内の条件は、次の文字を含めることができ=<>!+-/*%&|[]、a-z、0-9。内側の括弧が存在しないと仮定することもできます。また、複数の文字が使用される(混乱させる)フィールドは存在しないと仮定することもできます(などif(if<0))。 のi*=10代わりにのようなショートカットはないと仮定できi=i*10ます。 ぶら下がりのelseケースを処理する必要はないので、すべてifをペアリングできますelse。すなわちif(a)if(b)r=0;else r=1;、可能な入力ケースではありません。if(a)if(b)r=0;else r=1;else r=2;またはif(a&&b)r=0;else …
18 code-golf  string 

9
パディングされた文字列のリスト間の最大ハミング距離
等しい長さの2つのストリング間のハミング距離は、対応する文字が異なる位置の数です。文字列の長さが等しくない場合、ハミング距離は定義されません。 チャレンジ 文字列のリストからすべての文字列のペアの中で最大のハミング距離を見つけるプログラムまたは関数を作成し、以下で説明する規則に従って必要に応じてパディングします。 文字は内からになりますa-zA-Z0-9。 文字列の長さが等しくない場合があるため、比較ごとに次のように短い文字列をパディングする必要があります。 必要な長さに合わせて、必要な回数だけ文字列を先頭から折り返します 奇数回の折り返しごとに文字の大文字小文字を変更します(1番目、3番目、5番目など) a-zA-Z包装するときは外の物をそのままにしておく たとえばab9Cd、18 文字になるように5文字の文字列を埋め込む必要があるとしましょう。次のようになります。 ab9CdAB9cDab9CdAB9 ^^^^^ ^^^ ^ケースの変更を強調するために、1番目と3番目のラップの下に追加されます。 入出力 入出力形式は柔軟です。入力に少なくとも2つの文字列があり、すべての文字列に少なくとも1つの文字があると仮定できます。 出力は整数です。 ルール これはcode-golfです。標準ルールが適用されます。 テストケース [ "a", "b" ] => 1 [ "a", "b", "c" ] => 1 [ "a", "a", "c" ] => 1 [ "abc", "abcd" ] => 1 [ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] …
18 code-golf  string 

30
テキスト圧縮
以下のテキストでは、テキスト内に複数回繰り返される単語がいくつかあります。任意のプログラミング言語を使用して、テキストを圧縮して表示する短いコードを記述します。または、言い換えると、最小のバイト数を使用してテキストを表示します。 テキストは次のとおりです。 Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?

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