在一個擴展矩陣中,傳回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' 並移至下一個索引並檢查它。
範例
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 等)編寫這些程式碼。我們希望您會發現本教學很有幫助。 ###以上是在一個擴展矩陣中,傳回C++中的前一個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP技巧:快速實現回到上一頁功能在網頁開發中,常常會遇到需要實作返回上一頁的功能。這樣的操作可以提高使用者體驗,讓使用者更方便地在網頁之間進行導航。在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]

PHP中的自訂函數可以透過return語句傳回指定類型的值,包括字串、數字、陣列和物件。實戰案例:-返回字串:functiongreet($name){return"Hello,$name!";}-返回字串:functionget_user_data($id){return["name"=>"John","email"=> "john@example.com"];}

我們可以使用陣列循環來從列表中傳回最大的元素。主要是透過比較模型來實現的。在某個清單中,最大的數字將與該清單中的所有元素進行比較。該過程將考慮“n”作為輸入數量,並將其作為資料值儲存在數組中。之後,程式將在循環結束後在輸出控制台上顯示最大的元素。在本文中,我們將幫助您理解並編寫一些Java程式碼,透過這些程式碼您可以從陣列列表中找到最大的元素。如何使用Java從陣列中選擇最大的數字? Wecanfindalargestnumberbysortinganarray.TodefineavoidArrayL

需要製作一個函數,對於輸入1返回2,對於輸入2返回1。根據您使用的邏輯,可以以多種方式製作此函數。最簡單的方法是使用條件語句,如果數字是1,則傳回2,否則傳回1,其他方法包括使用數學運算(任何一種都可以)和異或運算。範例#include<stdio.h>//Method1usingtheifstatementintreverseif(intx){ if(x==1)return2; elsereturn1;}/

PHP中使用函數傳回值的步驟包括:使用function宣告函數;使用return語句傳回結果;呼叫函數並擷取回傳值。
