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

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

30
コルモゴロフシフター
以下に示すとおりに、次の3行のテキストを出力または表示します。末尾の改行が受け入れられます。 bC#eF&hI)kL,nO/qR2tU5wX8z A!cD$fG'iJ*lM-oP0rS3uV6xY9 aB"dE%gH(jK+mN.pQ1sT4vW7yZ このテキストブロックは下のブロックと同じですが、n番目の列がn回下に回転します。 !"#$%&'()*+,-./0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz これはkolmogorov-complexityの課題であるため、出力形式には柔軟性がないことに注意してください。

1
ドイツ語の発音を推測する
前書き 英語とは異なり、ドイツ語は音素表記システムが非常に優れていると考えられています。これは、スペルと発音の対応が近いことを意味します。なじみのない単語を考えても、スペルシステムのために、その単語の発音方法を知っているでしょう。これは、コンピューターでも正しく実行できるはずだということですか? チャレンジ ドイツ語の単語を表す文字列を入力として受け取り、その発音を国際音声文字(IPA)で出力または返すプログラムまたは関数を作成します。 もちろん、ドイツ語や完全なIPAを学ばせるつもりはありません。この1つのWikipediaのセクションでは、あなたが必要とするルール、と私はungolfed C#のコード化されてきたIPAにほぼすべてのドイツ語を提供リファレンス実装を。 このリンクには、400の一般的なドイツ語の単語とそのIPAの発音のリストも提供されています(検証に必要です)。そのリストから例を挙げると、入力がのsolltest場合、正しい出力はˈzɔltəstです。 参照実装は、Wikipediaセクションで言及されていない2つの有用なルールを追加します:単語のストレスが最初の音節(ドイツ語である可能性が非常に高い)にあると想定し、文字「e」がシュワ音/ə/を表すタイミングを決定するために、より良いヒューリスティックを使用します。プレフィックスの特別な処理も実装しますが、思ったほど結果が改善されませんでした。 詳細 有効なエントリと見なされるには、プログラムが次の要件を満たしている必要があります。 IPA出力は、参照語リストの 400語のうち少なくとも300語と完全に一致する必要があります(参照実装は333正しいです) あなたのプログラムは、もっともらしいドイツ語を推測する必要があります。したがって、技術的な要件があります。これは、正規表現に一致し、[a-zA-ZäÄöÖüÜ][a-zäöüß]*少なくとも1つの母音(aeiouyäöü)を持つ入力については、空白以外の出力を生成し、エラーを出力しないことを意味します。 プログラムは決定論的である必要があります(同じ入力に対して常に同じ出力を生成します) それ以外の場合、標準的な抜け穴は禁止されています(特に、オフサイトリソースの取得に関するもの) 許可されているその他のこと: 必要に応じて、出力に先頭と末尾の空白を含める 出力に既存の文字エンコーディングを使用します(Unicode以外がうまく機能することは想像できませんが、可能であればおめでとうございます) 入力は、ユニコード正規化形式NFD、NFCなどのような正規化された形式であると仮定します。たとえば、äは単一の文字またはベース文字+結合文字として書かれていますか? 標準の入出力方法を使用する スコアリングとIPAキャラクター スコアリングはバイト単位です。ドイツ語の文字とIPAの文字はUTF-8で2バイトであることに注意してください。また、IPA文字U + 0327 COMBINING INVERTED BREVE BELOW(̯)はUnicode結合文字であり、2バイトのUTF-8文字そのものです。つまり、ɐ̯のようなものはUTF-8では4バイトとしてカウントされます。好奇心の強い人のために、この記号は母音が音節核を形成しないことを意味します(前のものは代わりに形成します)。 また、一部のフォントでは他のASCII文字のように見えるこれらのIPA文字に注意してください。 参照語リストの作成方法 このセクションは、チャレンジには不要な追加情報です。 単語リストはこのウィクショナリーの単語頻度リストから取得され、大文字と小文字の違いと、英語のウィクショナリーにドイツ語のエントリがない2つの単語(oh&hey)のために繰り返しを削除しました。IPAは、英語とドイツ語の両方のウィクショナリーを見ていた。複数の発音が提供された場合、より正式で標準的なものを選びました。これが明確でない場合は、一般的なルールに最も適合するものを選択しました。 また、文字「r」の発音方法を標準化する必要がありました。この文字がどのように発音されるかは地域に大きく依存しており、ウィクショナリーは選択したものとまったく一貫していませんでした。私はそれが次の傾向があると感じました:「r」は長い母音が続き、母音が続かないとき発音される/ɐ̯/、そうでなければ、それはʁです。したがって、非常に一貫性のある/(f)ɛɐ̯/であるver-およびer-プレフィックスを除き、すべてのルールをそのルールに従うように変更しました。同様に、「eu」を/ɔʏ̯/として標準化しました。

28
サンドイッチはいつ入手できますか?
次の入力のいずれかを指定します。 スイートオニオンチキン照り焼き ローストチキン 七面鳥の胸肉 イタリアのBMT ツナ 黒い森のハム ミートボールマリナラ1〜7(または0〜6)の数字を出力します。月曜日を最低値として、その取引を取得する曜日を表します。入力は、必要に応じてすべて小文字または大文字にすることができます(つまり、「italian bmt」)。インターネットは許可されていません。

30
文字列の減算
目的 文字列の連結を逆にする関数を作成します 入力 2つの文字列(英数字+スペース)。一方を他方から減算する必要があります。 減算される文字列が他の文字列より大きくなることはないと想定できます。 出力 減算の結果 減算 別の文字列の先頭または末尾から1つの文字列を削除する必要があります。文字列が最初と最後に存在する場合、削除できるのは1つだけで、削除されるのはユーザー次第です。 文字列が先頭または末尾にない場合、または完全に一致しない場合、無効な減算であり、元の文字列を出力する必要があります。 テストケース 有効な減算 'abcde','ab' -> 'cde' 'abcde','cde' -> 'ab' 'abab','ab' -> 'ab' 'abcab','ab' -> 'abc' or 'cab' 'ababcde','ab' -> 'abcde' 'acdbcd','cd' -> 'acdb' 'abcde','abcde' -> '' 'abcde','' -> 'abcde' '','' -> '' 無効な減算(元の文字列を返します) 'abcde','ae' -> 'abcde' 'abcde','aa' -> 'abcde' 'abcde','bcd' -> …
37 code-golf  string 

15
ウェールズ語はどのくらいですか?
ウェールズ語を表す文字列を入力として受け取るプログラムまたは関数を作成します(ユーザーが特に指定しない限り、UTF-8)。 以下は、ウェールズ語のすべての単一文字です。 a、b、c、ch、d、dd、e、f、ff、g、ng、h、i、j、l、ll、m、n、o、p、ph、r、rh、s、t、 th、u、w、y ウィキペディアを引用するには、 有向グラフch、dd、ff、ng、ll、ph、rh、thはそれぞれ2つの記号で書かれていますが、それらはすべて単一の文字と見なされます。これは、たとえば、ラネリ(ウェールズ南部の町)は、英語の8文字と比較して、ウェールズ語では6文字しかないと見なされていることを意味します。 これらの文字はウェールズ語にも存在しますが、他の言語から借用した技術用語に限定されています。 k、q、v、x、z 分音記号付きの文字は個別の文字とは見なされませんが、関数はそれらを受け入れてカウントできる必要があります。可能なそのような手紙は次のとおりです: â、ê、î、ô、û、ŷ、ŵ、á、é、í、ó、ú、ý、ẃ、ä、ä、ë、ï、ö、ü、ÿ、ẅ、à、è、ì、ò、 ù、ẁ (これは、これらの文字をエンコードできないため、ASCIIは受け入れ可能な入力エンコードではないことを意味します。) ノート: これはコードゴルフです。 ngが有向グラフではなく、2つの別々の文字であるllongyfarchのような単語を考慮する必要はありません。この単語には9文字ありますが、8文字と数えることができます。(そのような言葉を説明できるなら、それは素晴らしいことですが、この課題の範囲外です。) 入力には空白が含まれないことが保証されています(末尾に改行が1つ(またはより難解なもの)が必要な場合を除き、その場合は提供できます)。確かに内部の空白はありません。 テストケース: ランディドノー、8 ラネリ、6 リル、3 Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch、50(実際には51ですが、50をカウントします) Tŷr、3 Cymru、5 グリンダー、7

5
クラスターサイズの克服
フラッシュストレージの信頼性にうんざりして、すべてのプログラムを古き良き1,440 KiBフロッピーのいずれかに保存することにしました。しかし、3,000個のプログラムさえコピーしなかった後、ディスクはいっぱいになりました。それはどうして可能でしょうか?コードゴルフの技術に精通しているため、プログラムのほとんどは100バイトの長さでさえないため、十分なスペースが残っているはずです... スーパーユーザーに問い合わせた後、ファイルシステムのクラスターサイズ、FAT12のデザイナーの邪悪なプロットに悩まされていることがわかります。これは、フロッピーのかなりの部分を未使用のままにして、実際に必要以上に購入を余儀なくさせます。 フロッピーを追加購入しますか?絶対に!複数のプログラムを1つのファイルに保存するだけであれば、クラスターサイズは問題になりません。これは、同じソースコードに対して異なるコンパイラー/インタープリターが異なる動作をするためです。 仕事 単一のクラスター(512バイト以下)に収まり、次のタスクをできるだけ多く解決するポリグロットを作成します。 ひも すべての入力を読み取り、印刷します。 Print Hello、World!。 入力として行/引数(name)を読み取り、ハッピーバースデー[name]を出力します!。 すべての入力を読んで、タブが大好きです!1つ以上のタブレータ(0x09)が含まれていて、スペースが嫌いです!そうでない場合。 2行/引数を読み取り、2番目が最初のサブストリングである場合は真実の値を出力し、そうでない場合は偽の値を出力します。 行/引数を読み取り、その文字が厳密に昇順である場合は真実の値を出力し、そうでない場合は偽の値を出力します。 行/引数および文字を読み取り、その文字のすべての出現のインデックスを出力します。 行/引数を読み取り、出現回数が最も多い文字を印刷します。 数学 間の2つの整数を読む0と255とそれらの合計を印刷します。 0から255までの単一の整数を読み取り、その除算の商と剰余を7で出力します。 1から255までの単一の整数を読み取り、それが合成数(1でも素数でもない)である場合は真理値を出力し、そうでない場合は偽値を出力します。 1から255までの単一の整数を読み取り、それが2のべき乗である場合は真理値を出力し、そうでない場合は偽値を出力します。 間の2つの整数を読む0と255と大きな1つを出力します。 間進整数読み取る0と255を 16進表現を印刷します。 間の単一の整数を読む0と255とのハミング重み(1ビットの数)を印刷します。 単一の整数を読み取るNとの間の1と13と印刷FをN、N 番目の フィボナッチ数。 たとえば、入力の13場合、print 233。 アスキーアート 入力の行/引数を読み取り、フレーム化します。 たとえば、inputのProgramming Puzzles & Code Golf場合、次を印刷します。 +---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+ 文字の長方形ブロックを読み取り、時計回りに4分の1回転させます。 たとえば、入力用 tye xll …

22
忍者と猿と熊、オーマイ!
このチャレンジは、ブロックビルディングボットフロックを獲得したNinjaBearMonkeyの賞です!ブラックナイトの提出に挑戦してください。おめでとうございます、NinjaBearMonkey! ここでの課題は非常に単純ですが、さまざまなアプローチが可能です。物語は、等尺性錯覚の世界には、6種類のクリーチャーがいるということです。 忍者、略称 N クマ、略称 B サル、略称 M NinjaBears、略称 NB BearMonkeys、略称 BM NinjaBearMonkeys、略称 NBM (NinjaBearMonkeyは、もちろん最後の、最も強力なタイプです。) あなたの仕事は、これらのクリーチャーが並んでいるとき、つまり略語の文字列が連結されているとき、これらのクリーチャーの人口調査を取ることです。警告は、いくつかのクリーチャーの一部を偶然似ているように見える別個のクリーチャーとして数え過ぎないようにする必要があることです。クリーチャーは次のように並んでいます: のインスタンス NBMは、1つのNinjaBearMonkeyと0の他のクリーチャーです。 がNB続かないインスタンスMは1匹のNinjaBearと0匹の他のクリーチャーです。 BMが前にないインスタンスNは、1 BearMonkeyと0他のクリーチャーです。 そうでない場合は、のインスタンスN、BおよびMそれぞれ単一忍者、クマ、サルです。 行は左から右に読み取られます。 だから、例えば、生き物のラインで NBMMBNBNBM、0の忍者、1つのクマ、1つの猿、1つのNinjaBear、0のBearMonkeys、および2つのNinjaBearMonkeyがあります。 チャレンジ 文字の文字列を取り込みプログラムや関数を書くN、Bと、M、およびプリントや生き物の6種類のそれぞれの多くは、その中に存在しているかを返します。 出力の形式は次のとおりです。 #N #B #M #NB #BM #NBM それぞれのクリーチャーが各#サインを置き換えます。6カウントはすべて、0であってもスペースで区切って表示する必要があります。ただし、それらは任意の順序である場合があります(例:#NBM最初に来る可能性があります)。 また: 入力文字列は、文字だけが含まれますN、BとM。 空の文字列が入力された場合、すべてのカウントは0です。 出力には、オプションで、単一の先頭および/または末尾のスペース、および/または単一の末尾の改行を含めることができます。 バイト単位の最短提出が勝ちです。 例 入力:NB 出力:0N 0B 0M 1NB 0BM 0NBM 入力:NBM 出力:0N …
37 code-golf  string 

30
単語の文字がアルファベット順かどうかを確認します
小文字/大文字の文字列[A-Za-z]を入力として受け入れ、出現する文字が一意であり、アルファベット順(小文字と大文字を無視)であるかどうかをチェックする関数/プログラムを作成します。出力は、一意であり、アルファベット順である場合は真実であり、そうでない場合は偽である必要があります。 ここにいくつかのテストケース a true abcdefGHIjklmnopqrSTUVWXyz true aa false puz true puzz false puzZ false puZ true PuZ true pzu false pzU false abcdABCD false dcba false 必要に応じて、このような単語リストのすべての単語でプログラムを実行し、興味深いものを投稿してください=)。 スコア 最も少ないバイト数が優先されます。

18
デンマーク語で100まで数える
デンマークのカウント方法を使用して、0〜100のすべての数字を正しい順序で印刷します。 彼らが数える方法 英語と同様に、0〜20、30、40、100の専用の単語があります。 その代わりと言ってのtwenty-oneとtwenty-two、彼らが言うone and twentyと、two and twenty 50から始まって、彼らはn * 20として10の倍数を言う 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four times twenty 90 = half fifth times twenty したがって、たとえば55はになりますfive and …

30
ランダム大文字
タスク あなたの仕事は、入力が与えられると、ランダム化された文字を大文字にして入力テキストを出力するプログラムまたは関数を作成することです。 小文字の大文字のあらゆる組み合わせが可能です。入力された場合、例えばabc、以下の組み合わせのいずれかを出力する非ゼロの確率があるはず:abc、Abc、aBc、abC、ABc、AbC、aBCまたはABC。 入力 入力は、たとえば、任意の数の印刷可能なASCII文字を含む文字列Hello Worldです。その入力に対する出力が含まれるHeLLo WoRlD、HElLO WOrldなど 得点 これはコードゴルフですので、各言語で最短の答えが勝ちです!

7
Pythonバージョンのリスト
Pythonは、今日最も急速に成長している主要なプログラミング言語です。これは3年連続で最も求められている言語です。つまり、まだ使用していない開発者は学習したいと言っています。[1] Pythonの人気の理由は、その多くのバージョンにあります。[要出典]実際には、2つの開発バージョンを含む116のバージョンのPythonがあります。 あなたの仕事は、すべてのPythonバージョンのリストを、好きな順序で、好きな形式で出力/印刷することです。この情報が保存されている組み込み関数は使用できません。 出力形式は自由に選択できますが、各バージョンは、標準的な方法1.1(2.3.0、2.7.10など)で識別する必要があります。 コンマ区切りのPythonバージョンの完全なリスト2を以下に示します。 1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.7, …

19
ブラケット拡張!
あなたの挑戦は、示されているようにプログラムの入力でいくつかの括弧を拡張することです: 2つの一致する角かっことの間の文字列sを見つけます。閉じ角かっこの後に1桁のnが付きます。[] ブラケットを取り外します。 sをそれ自体でn回繰り返して置き換えます。(nが0の場合、単にsを削除します。) 入力に一致する括弧がなくなるまで手順1に進みます。 追加の規則と説明: 入力を受け取り、許可された手段で出力を行います。 出力の末尾の改行が許可されます。 入力で印刷可能なASCIIのみを処理する必要があります。 すべての括弧が一致する、つまり、入力[]]]]またはを受け取らないことを前提とする場合があります[[[[]。 各閉じ括弧の]後に数字があると仮定できます。 テストケース: Input -> Output [Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar [one]1[two]2[three]3 -> onetwotwothreethreethree [three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone [!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*( [[foo bar baz]1]1 -> foo bar baz [only once]12 -> only once2 [only twice]23456789 -> only twiceonly twice3456789 [remove me!]0 -> before [in …

22
基本的なASCIIタリー
代替タイトル:壁にあなたの刑務所の文を集計します numberを指定するとn、出力はグループごとに従来の5に、行ごとに50にグループ化されます。 例 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

21
(A [l(t [e(r)n] e)s] t)文字列!
Alternestingは、文字列を取得し、それを交互のブラケットにネストする行為です。文字列を変更する方法は次のとおりです。 長さNのストリングの場合、中央のN文字を取り、それらを括弧で囲みます。したがって、文字列がHello world!(12文字)であれば、次のようになります。 (Hello world!) 次に、残りの中央のn-2文字を取り、角括弧で囲みます。この場合、中央の10文字はello worldですので、次の反復は次のようになります。 (H[ello world]!) 限り、文字列の途中で左つ以上の文字があるとして、交互に、最後の2つの手順を繰り返します()と[]。最後の手順は次のとおりです。 (Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!) 最後の反復では、中央に2文字しか残っていないため、停止します。最後の文字列は (H[e(l[l(o[ w]o)r]l)d]!) 中央の括弧に2つの文字があることに注意してください。これは、入力の長さが偶数の場合に発生します。入力の長さが奇数の場合(たとえば、Hello, world!コンマが追加されている場合)、中央に1文字しかありません。 (H[e(l[l(o[,( )w]o)r]l)d]!) 今日の課題では、入力として文字列を受け取り、それを変更して新しい文字列を出力するプログラムまたは関数を作成する必要があります。任意の妥当な形式で入出力を行うことができます。入力は常に少なくとも1文字の長さで、印刷可能なASCIIのみが含まれます。入力に括弧や角括弧が含まれないことも想定できます。従来の言語の場合、これはそれほど重要ではありませんが、一部の難解な言語では簡単になります。 いつものように、これはコードとゴルフのコンペティションであるため、選択した言語で可能な限り最短の回答を作成してください。楽しむ! テストIO #Input #Output "Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!) "PPCG" --> (P[PC]G) "Code-golf" --> (C[o(d[e(-)g]o)l]f) "4 8 15 16 23 42" --> …

30
開始は終了に等しいですか?
タスク この課題では、タスクは、文字列を取り込んで、入力文字列の最初の文字と最後の文字が等しいかどうかに基づいて真偽値を出力するプログラムまたは関数を作成することです。 入力 何らかの方法で合理的な方法で入力を受け付けます。ただし、入力が事前定義された変数に存在すると仮定することは許可されていません。ファイル、コンソール、コマンドライン、入力フィールドなどからの読み取り、または入力を関数の引数として使用できます。 出力 結果を変数に割り当てる場合を除き、妥当な形式で出力できます。ファイル、コンソール、コマンドライン、モーダルボックス、関数returnステートメントなどへの書き込みが許可されています。 追加の規則 入力は空の文字列にすることもできます。この場合、falsey値を返す必要があります。 単一文字の入力文字列には、真実の結果が必要です。 プログラムでは大文字と小文字を区別する必要があります。helloHfalsey値を出力する必要があります。 単一のTruthy値と単一のFalsey値のみを持つことができます。たとえばfalse、入力文字列および0別の入力文字列に対してFalsey値として出力することは許可されていません。 標準の抜け穴は許可されていません。 テストケース Input -> Output "10h01" Truthy "Nothing" Falsey "Acccca" Falsey "wow!" Falsey "wow" Truthy "H" Truthy "" Falsey これはcode-golfなので、バイト単位の最短コードが勝ちです!

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