" >The previous sequence is: abbcc
ログイン後にコピー結論
The previous sequence is: abbcc
拡張行列では、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] == 'b'){ seq[i] = 'a'; break; } if (seq[i] == 'd'){ seq[i] = 'c'; break; } // if an element is b or d, change them and move to the next element. if (seq[i] == 'a') seq[i] = 'b'; else if (seq[i] == 'c') seq[i] = 'd'; } cout << "The Previous sequence is: " << seq; return 0; }
The previous sequence is: abbcc
ログイン後にコピー結論この記事では、拡張文字マトリックスとその形成方法について説明しました。拡張行列内の前の要素を見つけることについても説明しました。私たちは、拡張文字マトリックスによって作成されるパターンを理解することで、この問題を解決しました。
この問題を解決するための C コードについても説明しました。このコードは、C、Java、Python などの任意のプログラミング言語で作成できます。このチュートリアルがお役に立てば幸いです。 The previous sequence is: abbcc
以上が拡張行列では、C++ で前の要素を返します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

拡張されたマトリックスに基づいて問題について話し合います。拡張行列とは、サイズが何らかの係数によって増加する行列です。ここでは、サイズが 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]

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

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

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

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