찾다
백엔드 개발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 ]

이것은 두 개의 초기 확장 행렬입니다. 문자 시퀀스 "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'로 변경하고 다음 색인으로 이동하여 확인합니다.

Example

위 메서드의 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;
}

Output

The previous sequence is: abbcc

결론

이 글에서는 확장 문자 행렬과 그 구성 방식에 대해 논의했습니다. 또한 확장 행렬에서 이전 요소를 찾는 방법도 논의했습니다. 우리는 확장된 문자 매트릭스에 의해 생성된 패턴을 이해함으로써 이 문제를 해결했습니다.

우리는 이 문제를 해결하기 위해 C, Java, Python 등과 같은 프로그래밍 언어로 작성할 수 있는 C++ 코드에 대해서도 논의했습니다. 이 튜토리얼이 도움이 되기를 바랍니다.

위 내용은 확장 행렬에서 C++의 이전 요소를 반환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 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 Hentai를 무료로 생성하십시오.

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경