目次
解を見つける方法
効率的な方法
The previous sequence is: abbcc
ログイン後にコピー
結論

" >
The previous sequence is: abbcc
ログイン後にコピー
結論

ホームページ バックエンド開発 C++ 拡張行列では、C++ で前の要素を返します。

拡張行列では、C++ で前の要素を返します。

Sep 15, 2023 am 09:17 AM
戻る 拡張マトリックス 前の

拡張行列では、C++ で前の要素を返します。

拡張マトリックスに基づいて問題について話し合います。拡張行列とは、サイズが何らかの係数によって増加する行列です。

ここでは、サイズが 2 の倍数で拡張された文字行列があります。つまり、元の行列のサイズが N * N の場合、拡張された行列のサイズは 2N * 2N になります。 。 (i, j) にある文字のシーケンスが与えられており、(i, (j - N - 1)%N) にある文字のシーケンスを返す必要があります。

いくつかの初期展開行列を視覚化して理解しましょう。

Given Matrix -> [ a, b ] [ c, d ], 2 X 2 matrix
Multiplying with { a, b, c, d }
A X [ a, b ]
B X [ a, b ]
C X [ a, b ]
D X [ a, b ]
[ c, d ] [ c, d ] [ c, d ] [ c, d ]

Expanded Matrix -> [ aa, ab, ba, bb ]
[ ac, ad, bc, bd ]
[ ca, cb, da, db ]
[ cc, cd, dc, dd ], 4X4 matrix
To expand again, multiply it by { a, b, c, d } and a matrix of size 8X8 will be formed.

Expanded Matrix - > [ aaa, aab, aba, abb, baa, bab, bba, bbb ]
[ aac, aad, abc, abd, bac, bad, bbc, bbd ]
[ aca, acb, ada, adb, bca, bcb, bda, bdb ]
[ acc, acd, adc, add, bcc, bcd, bdc, bdd ]
[ caa, cab, cba, cbb, daa, dab, dba, dbb ]
[ cac, cad, cbc, cbd, dac, dad, dbc, dbd ]
[ cca, ccb, cda, cdb, dca, dcb, dda, ddb ]
[ ccc, ccd, cdc, cdd, dcc, dcd, ddc, ddd ]
ログイン後にコピー

これらは 2 つの初期展開行列です。文字シーケンス「bcc」を取得すると仮定すると、そのすぐ左のシーケンス「add」を返す必要があります。また、行列が巡回であると仮定します。つまり、指定されたシーケンスが (i, 0) にある場合、(i, N-1) にあるシーケンスを返します。

Input: abb
Output: aba
Explanation: The sequence just left to abb is aba in the 8X8 matrix.

Input: aadc
Output: aacd

Input: abbcd
Output: abbcc
ログイン後にコピー

解を見つける方法

最初に問題について考えると、思い浮かぶ唯一の解決策は、指定されたシーケンスを含むがそれほど複雑に見えない拡張行列を見つけることです。最初に行列を形成してから、シーケンスを検索する必要があります。

効率的な方法

最初に展開された行列をいくつか調べた後、前の要素を確認できるパターンを発見しました。つまり、

  • は、最後のインデックスから開始して文字シーケンスを走査します。

  • インデックス要素が 'b' または 'd' の場合、それを 'a' または 'c' に変更し、配列の走査を停止します。

  • インデックス要素が 'a' または 'c' の場合、 ' それを 'b' または 'd' に変更し、次のインデックスに移動して確認します。

#例

メソッド上の C コード

#include <bits/stdc++.h>
using namespace std;
int main (){
   string seq = "abbcd";
   int n = seq.length ();
   // traverse through the string from last.
   for (int i = n; i >= 0; i--){
      // if the element is b or d, change them and stop traversing.
      if (seq[i] == &#39;b&#39;){
      seq[i] = &#39;a&#39;;
      break;
   }
   if (seq[i] == &#39;d&#39;){
      seq[i] = &#39;c&#39;;
      break;
   }
   // if an element is b or d, change them and move to the next element.
   if (seq[i] == &#39;a&#39;)
      seq[i] = &#39;b&#39;;
   else if (seq[i] == &#39;c&#39;)
      seq[i] = &#39;d&#39;;
   }
   cout << "The Previous sequence is: " << seq;
   return 0;
}
ログイン後にコピー

出力

The previous sequence is: abbcc
ログイン後にコピー
結論

この記事では、拡張文字マトリックスとその形成方法について説明しました。拡張行列内の前の要素を見つけることについても説明しました。私たちは、拡張文字マトリックスによって作成されるパターンを理解することで、この問題を解決しました。

この問題を解決するための C コードについても説明しました。このコードは、C、Java、Python などの任意のプログラミング言語で作成できます。このチュートリアルがお役に立てば幸いです。

以上が拡張行列では、C++ で前の要素を返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP のヒント: 前のページに戻る関数をすばやく実装する PHP のヒント: 前のページに戻る関数をすばやく実装する Mar 09, 2024 am 08:21 AM

PHP のヒント: 前のページに戻る機能をすばやく実装する Web 開発では、前のページに戻る機能を実装する必要があることがよくあります。このような操作により、ユーザー エクスペリエンスが向上し、Web ページ間の移動が容易になります。 PHP では、いくつかの簡単なコードを通じてこの機能を実現できます。この記事では、前のページに戻る機能を素早く実装する方法と、具体的な PHP コード例を紹介します。 PHP では、$_SERVER['HTTP_REFERER'] を使用して前のページの URL を取得できます。

データを挿入した後、MySQL はどのような結果を返しますか? データを挿入した後、MySQL はどのような結果を返しますか? Mar 01, 2024 am 10:27 AM

MySQL は、データの保存と管理に広く使用されているリレーショナル データベース管理システムです。新しいデータをデータベース テーブルに挿入する場合、通常は INSERT ステートメントを使用します。 MySQL では、INSERT ステートメントが実行されてデータが正常に挿入されると、挿入操作の結果である結果が返されます。この記事では、データを挿入した後に MySQL によって返される結果について詳しく説明し、いくつかの具体的なコード例を示します。 1. データを挿入した後に返される結果は MySQL にあり、正常に実行された場合

Vue を使用して前のページに戻る効果を実装する方法 Vue を使用して前のページに戻る効果を実装する方法 Sep 19, 2023 pm 01:07 PM

Vue を使用して前のページに戻る特殊効果を実装する方法 フロントエンド開発では、前のページに戻る必要がある状況によく遭遇します。戻るボタンを追加すると、より良いユーザー エクスペリエンスを提供できます。この記事では、Vue フレームワークを使用して前のページに戻る特別な効果を実現する方法を紹介し、対応するコード例を示します。まず、Vue プロジェクトで、前のページとしてページを作成する必要があります。 VueRouter を通じてルーティングを設定でき、各ルートはコンポーネントに対応します。前のページでは、戻るボタンを追加してクリック イベントを渡すことができます。

拡張行列では、C++ で前の要素を返します。 拡張行列では、C++ で前の要素を返します。 Sep 15, 2023 am 09:17 AM

拡張されたマトリックスに基づいて問題について話し合います。拡張行列とは、サイズが何らかの係数によって増加する行列です。ここでは、サイズが 2 の倍数で拡張された文字行列があります。つまり、元の行列のサイズが N*N の場合、拡張された行列のサイズは 2N*2N になります。 (i, j) にある文字シーケンスが与えられており、(i, (j-N-1)%N) にある文字シーケンスを返す必要があります。いくつかの初期展開行列を視覚化して理解しましょう。 GivenMatrix->[a,b][c,d],2X2matrixMultiplyingwith{a,b,c,d}AX[a,b]BX[a,b]CX[a,b]DX[a,b][c] 、d]

Java プログラムはリスト内の最大の要素を返します Java プログラムはリスト内の最大の要素を返します Aug 19, 2023 pm 05:17 PM

配列ループを使用して、リストから最大の要素を返すことができます。これは主にモデルを比較することによって実現されます。リストでは、最大の数値がリスト内のすべての要素と比較されます。このプロシージャは、「n」を入力数量とみなし、それをデータ値として配列に保存します。その後、プログラムはループ終了後に出力コンソールに最大の要素を表示します。この記事では、配列リストから最大の要素を見つけるための Java コードを理解し、記述するのに役立ちます。 Javaを使用して配列から最大の数値を選択するにはどうすればよいですか?配列をソートすることで最大の数を見つけることができます。ArrayL を避けるために定義します。

PHPカスタム関数の値を返すにはどうすればよいですか? PHPカスタム関数の値を返すにはどうすればよいですか? Apr 15, 2024 pm 05:00 PM

PHP のカスタム関数は、return ステートメントを通じて、文字列、数値、配列、オブジェクトなどの指定された型の値を返すことができます。実際のケース: -戻り文字列: functiongreet($name){return "Hello,$name!";} -戻り配列: functionget_user_data($id){return["name"=>"John","email"=> " john@example.com"];}

PHPを使用して戻り値を持つ関数を作成するにはどうすればよいですか? PHPを使用して戻り値を持つ関数を作成するにはどうすればよいですか? Apr 10, 2024 pm 12:45 PM

PHP で関数の戻り値を使用する手順には、 function を使用して関数を宣言する、return ステートメントを使用して結果を返す、関数を呼び出して戻り値を取得する、などがあります。

入力が 1 の場合は 2 を返し、入力が 2 の場合は 1 を返す関数を C プログラミングで作成します。 入力が 1 の場合は 2 を返し、入力が 2 の場合は 1 を返す関数を C プログラミングで作成します。 Sep 10, 2023 pm 01:25 PM

入力 1 に対して 2 を返し、入力 2 に対して 1 を返す関数を作成する必要があります。この関数は、使用するロジックに応じてさまざまな方法で作成できます。最も簡単な方法は、数値が 1 の場合は 2 を返し、それ以外の場合は 1 を返すという条件ステートメントを使用することです。その他の方法には、数学演算 (どのような種類でも構いません) や XOR 演算を使用することが含まれます。例 #include<stdio.h>//ifstatementintreverseif(intx)を使用したメソッド1{if(x==1)return2; elsereturn1;}/

See all articles