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

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

1
エニグママシンを実装する
Enigmaマシンは、ドイツ人などがメッセージを暗号化するために使用するかなり複雑な暗号マシンです。このマシンを実装するのはあなたの仕事です*。 ステップ1、回転 エニグママシンには、ローター用に3つのスロットがあり、これらの各スロットに5つの使用可能なローターがあります。各ローターには、26の異なる位置(A〜Z)があります。各ローターには、事前定義されたノッチ位置があります。 Rotor Notch ------------ 1 Q 2 E 3 V 4 J 5 Z キーを押すと、次の手順が発生します。 スロット1のローターが回転します スロット1のローターがノッチを通過すると、スロット2のローターが回転します。 スロット2のローターがそのノッチにある場合(ただし、そこに移動しただけではない場合)、ローター2と3の両方が1回転します。 私たちはローター1,3,5を使用していて、彼らは位置にある場合はP,U,H、その後位置の順序は次のとおりです。P,U,H> Q,U,H> R,V,H>S,W,I ステップ2、置換 各ローターは、単純な文字置換を実行します。以下は、A位置にある各ローターのチャートです。 ABCDEFGHIJKLMNOPQRSTUVWXYZ -------------------------- 1 EKMFLGDQVZNTOWYHXUSPAIBRCJ 2 AJDKSIRUXBLHWTMCQGZNPYFVOE 3 BDFHJLCPRTXVZNYEIWGAKMUSQO 4 ESOVPZJAYQUIRHXLNFTGKDCMWB 5 VZBRGITYUPSDNHLXAWMJQOFECK R YRUHQSLDPXNGOKMIEBFZCWVJAT 位置Tのローター1はPAIBRCJEKMFLGDQVZNTOWYHXUS、の代わりに文字Cを使用しIます。 3つのローターが置換を実行した後、リフレクターがヒットします(R上記のリストにあります)。独自の置換を実行し、信号をローターに反映します。次に、ローターは逆の順序で逆置換を実行します。 代わりに、1個の置換ロータの逆置換手段AとE、それは代入しEてA スロットには、すべての位置にあるローター1、2、3が充填されていAます。手紙はローターを通るQ経路Q>X>V>Mをたどります。 Mに反映しO、それはの逆経路をたどるO>Z>S>S。したがって、Aはに置き換えられSます。 入出力 合格しました: 3つのローターのリスト(整数として) 3つの開始ローター位置のリスト(文字として) 暗号化する必要がある文字列。 入力は整形式で、すべての文字はスペースでなく大文字であると想定できます。 …

8
ジミーはあなたの助けを必要としています!
最近のように、そこに見られるように、Jimmysが彼らの死に落ちる多くなっているようだここでは、こことジミーが落ちるかどうかを判断するように求めていたところ。この狂気をやめ、ジミーを救おうとする時です。 ジミーは3体の部分を持っている/、oと\このように配置されました /o\ プラットフォームはで表され-ます。ジミーは、プラットフォームの真上にない2つ以上の身体部分がある場合、プラットフォームから落下します。 いくつかの例: /o\ - ------- ジミーは体のすべての部分が体温以上であるため、バランスを取るでしょう-。 /o\ ------ --- 2つの体の部分が-s を超えているため、ジミーはバランスを取ります。 /o\ -- ---- -- ジミーは2つのプラットフォームに分割されていてもバランスを取ります /o\ - 2つの身体部分がプラットフォームの上にないため、ジミーはバランスが取れません。 プラットフォームの供給が不足しているため、プラットフォームの長さは5しかなく、できるだけ少ない数を使用することが重要です。 あなたの仕事は、Jimmysの入力を取得し、すべてのJimmysを入力に保存する一連のプラットフォームを出力することです。出力はできるだけ少ないプラットフォームを使用する必要がありますが、各プラットフォーム-の幅は5でなければなりません。 プラットフォームの-幅が5であるという規則は、各プラットフォームの間にスペースが必要であることを意味することに注意してください。----------は、長さ5の2つのプラットフォームではなく、長さ10のプラットフォームと見なされるため、出力では無効です。 テストケース /o\ /o\/o\ // input ----- ----- // output /o\ /o\ ----- ----- /o\ /o\ // same input as above ----- ----- // this is …

29
私はソースコードを逆にします、あなたは入力を逆にします!
さらに別の露骨なパクリのパクリのパクリ。それらに賛成票を投じてください! あなたがそれを受け入れたいなら、あなたの仕事は、文字列の入力/引数を出力/返すプログラム/関数を書くことです。扱いにくい部分は、ソースコードを逆にすると、出力も逆にする必要があることです。 簡単にするために、入力は常にASCII文字(az)、数字(0-9)、およびスペースのみを含む単一行の文字列であると想定できます。 少なくとも8文字の長さの入力をサポートする必要があります(8文字より長い必要はありません)。 空の入力の動作は未定義です。 例 あなたのソースコードがでABC、その入力がであるとしましょうxyz。CBA代わりに記述して実行すると、出力はでなければなりませんzyx。 あなたのソースコードがでABC、その入力がであるとしましょう96。CBA代わりに記述して実行すると、出力はでなければなりません69。 通常の出力と反転出力の両方で一貫している限り、単一の先頭または末尾の空白は許容されます。

9
XKCDカレンダーの事実
インスピレーション。許可を得て掲載。 可能なXKCDカレンダーの「事実」の1つを印刷します。 生のテキストと構造は、APLリファレンス実装またはExplain XKCDのトランスクリプト(図の下のタイトルテキストを含む)から取得できます。 ルール すべての決定ノードで、各選択肢に等しい(疑似)ランダムチャンスがなければなりません。 すべて大文字を使用できます。 3つの文を生成する必要があります。質問、理由、タイトルテキスト。 3つの文は、それぞれ、、およびで終了し?、互いに1つのスペースで区切る必要があります。.. 含めることができる余分な空白は、末尾のスペースや改行だけです。 例 Did you know that the Latest Sunset drifts out of sync with the Zodiac because of time zone legislation in Indiana? Apparently it's getting worse and no one knows why. While it may seem like trivia, it has to …

23
火星探査機を動かしましょう!
概要 タスクは、火星探査車をナビゲートし、その最終的な座標と方向を伝えることです。 入力: 最初の入力: まず、プログラムは次の形式の入力を受け取る必要があります。 [X-Coordinate],[Y-Coordinate],[Direction] 方向は次のNいずれSかでなければなりません:またはまたはEまたはW(北、南、西、東の手紙を開始) 例: 10,20,N(x = 10、y = 20、方向= N(北)) 2番目の入力: 第2の入力は、一連の構成されR、L、M右のために、左とそれぞれ移動します。 以下のためR及びL(左右)ローバの方向は、それに応じて変更しなければなりません。 Mローバーそれが移動する前にした方向前方に1つのユニットを移動する必要があります。 座標を計算するためのルール: N = Y + 1 E = X + 1 S = Y - 1 W = X - 1 出力: ローバーの最終的な座標と現在の方向。 例: Enter initial data: 1,2,N Enter the instructions: MRMLM …

21
NATO Phonetic Alphabetを使用して、文字列を取り込み、その単語を綴る関数/メソッドを記述します。オプションのタイトルケース
NATO Phonetic Alphabetを使用して、文字列を取り込み、その単語を綴るプログラムを作成します。 マッピングは次のとおりです。 'A' -> 'Alfa' 'B' -> 'Bravo' 'C' -> 'Charlie' 'D' -> 'Delta' 'E' -> 'Echo' 'F' -> 'Foxtrot' 'G' -> 'Golf' 'H' -> 'Hotel' 'I' -> 'India' 'J' -> 'Juliett' 'K' -> 'Kilo' 'L' -> 'Lima' 'M' -> 'Mike' 'N' -> 'November' 'O' -> 'Oscar' 'P' …

4
作成する文字列が与えられ、空の文字列で開始し、追加と複製のコストを使用して作成します
あなたの仕事は、与えられたターゲット文字列を作成することです。空の文字列から始めて、文字列が目的のものと同じになるまで、文字を追加する必要があります。コストxを使用して文字列の末尾に文字を追加するか、コストyを使用して文字列を複製できます。私たちが望むのは、これを行う最も安価な方法です。 テストケース targetString , appendcost, clonecost -> totalcost "bb", 1, 2 -> 2 "bbbb", 2, 3 -> 7 "xzxpcxzxpy", 10, 11 -> 71 "abababab", 3, 5 -> 16 "abababab", 3, 11 -> 23
17 code-golf  string 

30
プレフィックスのテキストを検索し、テキスト内のすべてのサフィックスをリストします
ここでは、「接頭辞に続く任意の部分文字列」を意味するために、「接尾辞」を大まかに使用します。 ここでの「プレフィックス」とは、単語の開始を意味します。単語の開始は、スペースの後または入力テキストの最初の文字(最初の単語)として定義されます。単語の途中にある「プレフィックス」は無視されます。 たとえば、入力プレフィックスが「arm」で、入力テキストが「迫り来るハルマゲドンに対してダンブルドアの軍隊が完全に武装した」場合、出力リストには(y、ed、ageddon)が含まれます。 テストケース 大文字と小文字が区別され、文字列はスペースの後に終わると仮定します。入力はスペースで始まりません。 重複の削除はオプションです。 Input prefix: "1" Input text: "He1in aosl 1ll j21j 1lj2j 1lj2 1ll l1j2i" Output: (ll, lj2j, lj2) - in any permutation Input prefix: "frac" Input text: "fracking fractals fracted fractional currency fractionally fractioned into fractious fractostratic fractures causing quite a fracas" Output: (king, tals, …

26
Elixir Array構文糖
Elixirでは、(リンクされた)リストは、headは何でもよく、tailはリストの残りのリストの形式[head | tail]であり、空のリストはこの唯一の例外です。[] リストは次のようにも書くことができる[1, 2, 3]と同等です[1 | [2 | [3 | []]]] あなたの仕事は、説明されているようにリストを変換することです。入力は常に、正規表現に一致する数字のみを含む有効なリスト(Elixir内)になり\[(\d+(, ?\d+)*)?\]ます。(各コンマの後にスペースが1つ)またはスペースなしで入力を行うことができます。出力は、(それぞれの前後にスペースが1つ|)あり、またはスペースなしです。 先行ゼロのある入力の場合、ゼロなしで出力することも、出力することもできます。 入力は、出力と同様、文字列として取得する必要があります(関数を記述する場合)。 例 [] -> [] [5] -> [5 | []] [1, 7] -> [1 | [7 | []]] [4, 4, 4] -> [4 | [4 | [4 | []]]] [10, 333] -> [10 | [333 …

19
順序文字列チェック
説明: 入力として文字列を指定し、それが英語の有効な序数かどうかを確認します。有効な場合は真理値を返し、そうでない場合は偽の値を返します。(@Arnauldによる提案。ありがとう。また@JoKingによる) 序数について知りたいユーザーの場合は、ここにアクセスしてください: https://www.mathsisfun.com/numbers/cardinal-ordinal-chart.html(提案:qwr) 可能な入力: 21st ---> true 12nd ---> false 1nd ---> false .... これはコードゴルフチャレンジであるため、各言語の最短コードが勝者となります。 例: console.log('12th' , true) // This evaluates to true console.log('1st' , true) // also evaluates to true console.log('21nd' , false) // returns false console.log('11st' , false) // returns false console.log('111199231923819238198231923213123909808th' , true) // true …

23
綴られたシリアル番号を並べ替える
2つ以上の等しい長さの2つ以上のスペルアウトされたシリアル番号のリストがある場合、たとえば [[ "three" , "one" , "four" ], [ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "five" , "eight" ]] 単語が表す数字でリストをソートします。 [[ "one" , "five" , "nine" ], [ "two" , "six" , "five" ], [ "three" , "one" , "four" …

23
文字列から重複を削除する
この控えめなStackOverflow質問に触発されました。 アイデアはシンプルです。文字列と文字列の配列を指定すると、最初の文字列以外の入力文字列から、配列内の単語のインスタンスをすべて削除します(大文字と小文字は無視します)。単語は、単語の一部ではなく、入力文字列内の単語全体と一致する必要があります。 たとえば、"A cat called matt sat on a mat and wore a hat A cat called matt sat on a mat and wore a hat", ["cat", "mat"]出力する必要があります"A cat called matt sat on a mat and wore a hat A called matt sat on a and wore a hat" 入力 …
17 code-golf  string 

15
息子が手紙を見つけるのを手伝ってください
バックグラウンド 私の4歳の彼のラビから得たゲームに基づいています。 「目標」は、特定の順序で文字を「見つける」ことaecdbです。レターカードのスタックが与えられますdaceb。周期的ではありますが、指定された順序でのみスタックを検索できます。必要な手紙に出会ったら、それをスタックから取り出します。 目的 順序とスタック(相互の重複のない順列)を指定すると、ゲームのプレイ中に表示される一連の最上位スタック文字(すべて印刷可能なASCII)を見つけます。 ステップバイステップの例 aecdbスタックを指定して順序を見つける必要がありますdaceb。 スタックのトップd:探しているもの(a)ではないため、シーケンスに追加しd、スタックを取得するために回転します:acebd。 スタックのトップa:はい!したがって、シーケンスに追加daし、スタックから削除します:cebd。 スタックのトップc:探しているもの(e)ではないため、シーケンスに追加しdac、スタックを取得するために回転します:ebdc。 スタックのトップe:はい!したがって、シーケンスに追加daceし、スタックから削除します:bdc。 スタックのトップb:探しているもの(c)ではないため、シーケンスに追加しdaceb、スタックを取得するために回転します:dcb。 スタックのトップd:探しているもの(c)ではないため、シーケンスに追加しdacebd、スタックを取得するために回転します:cbd。 スタックのトップc:はい!したがって、シーケンスに追加dacebdcし、スタックから削除します:bd。 スタックのトップb:探しているもの(d)ではないため、シーケンスに追加しdacebdcb、スタックを取得するために回転します:db。 スタックのトップd:はい!したがって、シーケンスに追加dacebdcbdし、スタックから削除します:b。 スタックのトップb:はい!したがって、シーケンスに追加dacebdcbdbし、スタックから削除します:。 これで完了です。結果はdacebdcbdbです。 リファレンス実装 def letters(target, stack): string = '' while stack: string += stack[0] if stack[0] == target[0]: stack.pop(0) target = target[1:] else: stack.append(stack.pop(0)) return string print letters('aecdb', list('daceb')) オンラインでお試しください! テストケース try、yrt→yrtyry 1234、4321→4321432434 ABCDEFGHIJKLMNOPQRSTUVWXYZ、RUAHYKCLQZXEMPBWGDIOTVJNSF→RUAHYKCLQZXEMPBWGDIOTVJNSFRUHYKCLQZXEMPWGDIOTVJNSFRUHYKLQZXEMPWGIOTVJNSFRUHYKLQZXMPWGIOTVJNSRUHYKLQZXMPWIOTVJNSRUYKLQZXMPWOTVNSRUYQZXPWOTVSRUYQZXPWTVSRUYQZXWTVSRUYZXWTVSUYZXWTVUYZXWVYZXWYZXYZ …

30
言語名に文字数を掛けて出力する[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 昨年は閉店しました。 チャレンジ: あなたの仕事は、任意の言語を使用して、その言語の名前にその名前の文字数を掛けたものを出力することです。 言語の共通名または頭字語を使用します。 言語に複数のバージョンがある場合、バージョン番号を含める必要はありません。 大文字は重要です。 例: PHP -> PHPPHPPHP Java -> JavaJavaJavaJava C++ -> C++C++C++ Python 3 -> PythonPythonPythonPythonPythonPython JavaScript -> JavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScript

29
ピボットの周りの文字列の2つのセクションを反転します
バックグラウンド 私は現在、AP Comp Sci A:Javaクラスに参加しており、コードゴルフの友達を何人か始めたいと思っています。コースからの挑戦がありますが、この挑戦​​をコミュニティが何バイトできるかを知りたいと思います。 チャレンジの詳細: メイン文字列とピボット文字列の2つの入力文字列が与えられた場合、次の操作を行います。 ピボットストリングがメインストリングのサブストリングとして1回だけである場合、ピボットストリングの前に来るメインストリングの部分は、交換されるサブストリング内の順序を維持しながら、後に来る部分と交換されます。 例えば: ピボット文字列が空であるか、メイン文字列内にピボット文字列が見つからない場合、プログラムは動作を定義する必要はありません。 ピボット文字列のインスタンスが複数ある場合、分割はピボットの最初のインスタンスでのみ発生します。 例:メイン文字列OneTwoThreeTwoOneとピボット文字列を指定するTwoと、出力はになりますThreeTwoOneTwoOne。 メインストリング1Two2Two3Two4とピボットTwoを考えて、出力はあるべきです2Two3Two4Two1。 メイン文字列OneTwoThreeとピボット文字列「Two」を指定すると、出力はになりますThreeTwoOne。メイン文字列the rabbit is faster than the turtleとピボット文字列が与えられた is faster than (末尾の前後のスペースに注意してください)、出力はである必要がありますthe turtle is faster than the rabbit。 メインストリング1-2-3-4-5-6とピボット-を考えて、出力はあるべきです2-3-4-5-6-1。 あとがき: これはコードゴルフに関する私の最初の質問です。そのため、提案や建設的な批判がある場合は、お気軽にお申し付けください。 さらに、このプロジェクトの私のコード(コースはこれに焦点を当てているためJavaで記述されています)は以下にあります。ヒントがあれば、ぜひご覧ください。現在は363バイトですが、もっと優れた、より小さなソリューションを思いつくことができると思います。 import java.util.Scanner;interface Main{static<T>void D(T f){System.out.println(f);}static void main(String[]A){Scanner s=new Scanner(System.in);D("Enter the first String:");String a=s.nextLine();D("Enter the pivot String:");String …
17 code-golf  string 

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