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

拡張行列では、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 サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
PHP技巧:快速实现返回上一页功能PHP技巧:快速实现返回上一页功能Mar 09, 2024 am 08:21 AM

PHP技巧:快速实现返回上一页功能在网页开发中,经常会遇到需要实现返回上一页的功能。这样的操作可以提高用户体验,让用户更加方便地在网页之间进行导航。在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来设置路由,每个路由对应一个组件。在上一页中,我们可以添加一个返回按钮,并通过点击事件

Java程序返回列表中的最大元素Java程序返回列表中的最大元素Aug 19, 2023 pm 05:17 PM

我们可以使用数组循环来从列表中返回最大的元素。主要是通过比较模型来实现的。在某个列表中,最大的数字将与该列表中的所有元素进行比较。该过程将考虑“n”作为输入数量,并将其作为数据值存储在数组中。之后,程序将在循环结束后在输出控制台上显示最大的元素。在本文中,我们将帮助您理解并编写一些Java代码,通过这些代码您可以从数组列表中找到最大的元素。如何使用Java从数组中选择最大的数字?Wecanfindalargestnumberbysortinganarray.TodefineavoidArrayL

如何返回 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"];}

在一个扩展矩阵中,返回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]

编写一个在C编程中返回输入为1时返回2,输入为2时返回1的函数编写一个在C编程中返回输入为1时返回2,输入为2时返回1的函数Sep 10, 2023 pm 01:25 PM

需要制作一个函数,对于输入1返回2,对于输入2返回1。根据您使用的逻辑,可以以多种方式制作此函数。最简单的方法是使用条件语句,如果数字是1,则返回2,否则返回1,其他方法包括使用数学运算(任何一种都可以)和异或运算。示例#include<stdio.h>//Method1usingtheifstatementintreverseif(intx){&nbsp;&nbsp;if(x==1)return2;&nbsp;&nbsp;elsereturn1;}/

如何使用 PHP 创建带返回值的函数?如何使用 PHP 创建带返回值的函数?Apr 10, 2024 pm 12:45 PM

PHP中使用函数返回值的步骤包括:使用function声明函数;使用return语句返回结果;调用函数并捕获返回值。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境