タグ付けされた質問 「pattern-matching」

1
自分自身にのみ一致する正規表現
正規表現に関連するかなりクールな課題がいくつかあります(自己一致正規表現、正規表現検証正規表現) これはおそらく不可能かもしれませんが、それ自体にのみ一致する正規表現はありますか? 注:区切り文字を含める必要があります。 例えば/thing/一致しなければならない/thing/とありませんthing。式で可能な唯一の一致は、式自体でなければなりません。多くの言語では、正規表現の代わりに文字列を実装できます。たとえば、Go package main import "fmt" import "regexp" func main() { var foo = regexp.MustCompile("bar") fmt.Println(foo.MatchString("foobar")) } しかし、チャレンジのために、引用符を区切り文字として議論したい場合は、表現を区切り記号(開始記号、表現、終了記号ex:/fancypantpattern/または@[^2048]@)にしてください。この問題の明らかな難しさを考えると、それほど大きな違いは生じないと思います。 あなたを助けるために: rubular.com(ruby regex編集用のWebページ)にまとめたクイックハック: var test = document.getElementById("test") ,regex = document.getElementById("regex") ,delimiter="/" ,options = document.getElementById("options") ,delay = function(){test.value = delimiter + regex.value + delimiter + options.value} ,update = function(e){ // without …

28
JavaはJavaScriptに対して、Carはカーペットに対して
JavaScriptとJavaの違いは何ですか?に対するGreg Hewgillの答えに触発されたタイトルの盗難 前書き JavaとJavaScriptはプログラマーの間で一般的に使用される言語であり、現在Stack Overflowで最も人気のあるタグです。しかし、よく知られているように、似たような名前は別として、この2つに共通点はほとんどありません。 プログラミングの最も悪名高い討論の1つに敬意を表し、タグ検索の最近の不満に触発されて、次のことを提案します。 チャレンジ 入力として文字列を受け取るプログラムを作成します。car文字列が「Java」で始まり、「JavaScript」が含まれていない場合に返されます。そうでなければ、を返しcarpetます。 入力と出力の例 車: java javafx javabeans java-stream java-script java-8 java.util.scanner java-avascript JAVA-SCRIPTING javacarpet カーペット: javascript javascript-events facebook-javascript-sdk javajavascript jquery python rx-java java-api-for-javascript not-java JAVASCRIPTING ノート 入力マッチングでは大文字と小文字を区別しないでください 出力の可能性のみcarまたはcarpet 回答がJava、JavaScript、またはRegexを使用している場合の想像上のボーナスポイント 別のタイトル:JavaとJavaScript、そしてハムとハムスター

15
セミパリンドロームパズル
回文とは、それ自体が逆の言葉です。 今ではパリンドロームのように見えるかもしれないがそうではない単語がいくつかあります。たとえば、単語 はパリンドロームsheeshで sheeshはありません。その逆はhseehsどちらが異なるかを考えshてみましょう。しかし、単一の文字と考えると、逆はになりsheeshます。この種の単語をセミパリンドロームと呼びます。 具体的には、単語をいくつかのチャンクに分割して、チャンクの順序が逆になったときに元の単語が形成される場合、単語はセミパリンドロームです。(sheeshこれらのチャンクはsh e e sh)単語の両方の半分からの文字を含むチャンクも必要ありません(そうでない場合、すべての単語はセミパリンドロームになります)。たとえば、元の単語の両側の文字を含むチャンク()があるrearため、セミパリンドロームではありません。奇数の長さの単語の中心文字は単語のどちら側にもないと考えます。したがって、奇数の長さの単語の場合、中心文字は常に独自のチャンクになければなりません。r ea rea あなたの仕事は、正の整数のリストを取得し、それらがセミパリンドロームかどうかを判断することです。コードは、入力がセミパリンドロームの場合とそうでない場合の2つの一貫した等しくない値を出力する必要があります。ただし、コードのバイトシーケンスはセミパリンドロームそのものでなければなりません。 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 テストケース [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False より多くのテストケースを生成するプログラム。 恐ろしいことは、これらが一般化されたスマランダチェ回文に似ていることを指摘した。したがって、さらに読みたい場合は、1つの場所から始めてください。

4
Pentomino 6x10ソリューションノーマライザー
おそらく今おわかりのように、6x10グリッドのペントミノパズルには2339のソリューションがあります。12個のペントミノにはさまざまなラベル付けスキームがあり、そのうちの2つが下の画像に示されています。 画像クレジット:ウィキペディア 現在のタスクの目的上、正規化されたペントミノソリューションは、2番目のラベル付けスキーム(Conwayの)を使用するソリューションであると言います。 例: O O O O O S S S Z Z P P R R S S W W Z V P P P R R W W Z Z V U U X R T W Y V V V U X X X T Y …

1
たたみばりソルバー
バックグラウンド タタミバリはニコリが設計した論理パズルです。 :Tatamibariパズルは、その中のシンボルの三つの異なる種類の長方形のグリッド上で再生され+、-。と|。ソルバーは、次の規則に従ってグリッドを長方形または正方形の領域に分割する必要があります。 すべてのパーティションには、シンボルが1つだけ含まれている必要があります。 +シンボルは、正方形の中に含まれている必要があります。 |シンボルは、幅よりも大きい高さを有する矩形に含まれなければなりません。 -シンボルは、高さよりも大きな幅を有する長方形に含まれなければなりません。 4つのピースが同じコーナーを共有することはありません。(これが通常の畳の置き方です。) 以下は、解決策を含むパズルの例です。 仕事 与えられたタタミバリパズルを解きます。 入出力 入力は、指定されたタタミバリパズルを表す2Dグリッドです。各セルは、4つの文字のいずれかが含まれています+、-、|、、お好みのキャラクターは非手掛かり細胞を表現するために。テストケースでは、アスタリスク*が使用されています。 タタミバリパズルの有効なソリューションを明確に表すことができる適切な出力形式を選択できます。これには以下が含まれますが、これらに限定されません(不明な場合は、コメントで質問してください)。 4タプルのリスト。各タプルには、長方形の上部インデックス、左インデックス、幅と高さ(または同等の表現)が含まれます。 入力と同じ形状の数値グリッド。各数値は長方形を表します 座標セットのリスト。各セットには、長方形内のセルのすべての座標が含まれます パズルに複数のソリューションがある場合、有効なソリューションをいくつでも(1つ以上)出力できます。入力には少なくとも1つのソリューションがあることが保証されています。 テストケース Puzzle: |-* *+| *-* Solution: 122 134 554 ===== Puzzle: +*** **|* *+** ***- Solution: 1122 1122 3322 3344 ====== Puzzle: |*+*+ ***** ****- ***+| +**** Solution: 12233 12233 44444 55667 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.