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

JavaScriptで2つの文字列のgcdを検索する


記数法では、2つの数の最大公約数(GCD)は、両方の数を除算する最大公約数です。同様に、この概念を文字列に適用すると、2つの文字列のgcdは、両方の文字列に存在する最大の部分文字列(長さが最大)になります。

例-

2つの文字列が-

の場合
const str1 = 'abcabc';
const str2 = 'abc';

この場合、これらの文字列の公約数は-

になります。
const gcd = 'abc';

2つの文字列str1とstr2を受け取り、それらのgcdを計算して返すJavaScript関数を作成する必要があります。

このためのコードは-

になります
const str1 = 'abcabc';
const str2 = 'abc';
const findGCD = (str1 = '', str2 = '') => {
   if (str1 + str2 !== str2 + str1){
      // not possible
      // no common element
      return "";
   } else if (str1 == str2){
      return str1;
   } else if (str1.length > str2.length){
      return findGCD(str1.slice(str2.length), str2);
   } else {
      return findGCD(str2.slice(str1.length), str1);
   }
};
console.log(findGCD(str1, str2));

出力

そして、コンソールの出力は-

になります
abc

  1. JavaScriptで2つの文字列の間の珍しい文字を見つけて返す

    問題 2つの文字列を受け取るJavaScript関数を作成する必要があります。この関数は、両方の文字列に共通ではない新しい文字列を返す必要があります。 例 以下はコードです- const str1 = "xyab"; const str2 = "xzca"; const findUncommon = (str1 = '', str2 = '') => {    const res = [];    for (let i = 0; i < str1.length; i+

  2. C#で一時変数を使用せずに2つの文字列を交換します

    一時変数を使用せずに2つの文字列を交換するには、次のコードとロジックを試すことができます。 2番目の文字列を最初の文字列に追加します。 str1 = str1 + str2; str1をstr2に設定します。 str2 = str1.Substring(0, str1.Length - str2.Length); さて、最後のステップはstr1にstr2を設定することです- str1 = str1.Substring(str2.Length); 例 using System; class Demo {    public static void Main(Stri