Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの同様の文字列グループ


str1の2つの文字(異なる位置にある)を入れ替えてstr2と等しくなる場合、2つの文字列str1とstr2は類似しています。また、2つの文字列str1とstr2は、等しい場合は類似しています。

たとえば、「tars」と「rats」は類似しており(位置0と2で交換)、「rats」と「arts」は類似していますが、「star」は「tars」、「rats」、または「芸術」。

一緒に、これらは類似性によって2つの接続されたグループを形成します:{"tars"、 "rats"、"arts"}および{"star"}。 「tars」と「arts」は似ていなくても同じグループに属していることに注意してください。

正式には、各グループは、その単語がグループ内の他の少なくとも1つの単語と類似している場合にのみ、その単語がグループ内にあるようになっています。

arr内のすべての文字列がarr内の他のすべての文字列のアナグラムである文字列のリストarrが与えられます。グループがいくつあるかを調べる関数を作成する必要があります。

以下はコードです-

const arr = ["tars","rats","arts","star"];
const isSimilar = (str1, str2) => {
   const obj = {}
   let counter = 0
   for(let i=0; i< str1.length; i++){
      if(str1[i] !== str2[i]) { counter++ }
         obj[str1[i]] = str2[i]
      }
      return counter === 2? true : false
   }
   const similarStringGroup = (arr = []) => {
      const group = [[arr[0]]]
      for(let i=1; i<arr.length; i++){
         let match = false
         for(let j=0; j<group.length; j++){
            for(let k=0; k< group[j].length; k++){
               const booleanMatch = isSimilar(group[j][k], arr[i])
               if(booleanMatch) {
                  group[j].push(arr[i]);
                  match = true
                  break;
               }
            }
            if(match === true) { break }
         }
         if(match === false){ group.push([arr[i]]) }
      }
      return group.length
}
console.log(similarStringGroup(arr));

出力

以下はコンソール出力です-

2

  1. JavaScriptの文字列の紹介

    JavaScriptの文字列は、他の多くのプログラミング言語の場合と同様に、データをテキスト形式で保持するデータ型です。 Webアプリケーションのコンテキストでの文字列の一般的な使用法は、フォームからのユーザーの入力を保持することです。検索フォームを例にとると、検索クエリは文字列として保存されます。 ユーザー入力が検索フォームに送信されると、送信された文字列に対していくつかの比較操作が実行されます。これは、一致するクレデンシャルを見つけて、結果をユーザーに返すためのものです。比較演算はJavaScript演算子です。たとえば、「=」、「==」、「===」、「」などです。これらの演算子は、

  2. JavaScript文字列をブール値に変換します

    JavaScriptで文字列をブール値に変換するためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;    } </style> </head> <body> <h1>Converting strin