消除字串中成對的括號

2021-07-23 04:34:12 字數 824 閱讀 2718

給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常(error),例如:(1,(2,3),(4,(5,6),7))轉化為1,2,3,4,5,6,7;

例如(1,(2,3),(4,(5,6),7),提示error。

思路:遍歷原始陣列,如果是左括號(「(」),設定括號標誌位加1,如果是右括號(「)」),設定括號標誌位減一,如果都不是,則把數字放入目的陣列。最後通過判斷括號標誌位是否為0判斷原始字串中的括號是否成對出現。

// bracket_in_string.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#includeusing namespace std;

bool bracket(char* psrc,char *pdst)

int bracket_num=0;

while(*psrc)

else if((*psrc)==')')

else

}*pdst='\0'; //在目的陣列末尾加上結束標誌

if(bracket_num!=0)

else }

int _tmain(int argc, _tchar* argv)

{ char *src="(123(23)";

char *dst=new char[strlen(src)];

if(bracket(src,dst))

{ cout《另一種思路是借助於棧實現功能,如果是左括號(「(」),就把左括號入棧,如果是右括號(「)」),就把左括號出棧,如果都不是,則把數字放入目的陣列。最後通過判斷棧是否為空判斷原始字串中的括號是否成對出現。

字串括號消除

給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常 error 例如 1,2,3 4,5,6 7 轉化為1,2,3,4,5,6,7 輸入 1,2,3 4,5,6 7 輸出 error 輸入 1,2,3,4 輸出 1,2,3,4 遍歷原始陣列,如果是左括號 設定括號標誌位加1...

棧應用 判斷字串中括號是否成對出現

利用棧先將後出的特性,判斷字串中的數字表示式括號是否成對匹配,如果沒有給出錯誤位置資訊提示。思路很簡單,如果是左括號將左括號 就入棧,遇到右括號 棧中的左括號出棧。如果該出棧的時候,棧空 肯定匹配錯誤。還有就是表示式遍歷完畢,我們的棧 如果是全部匹配成功 棧肯定為空,不為空 匹配錯誤!這裡我們使用之...

利用R語言如何去除字串中成對的括號

首先,嘗試利用gsub函式首先,嘗試利用gsub函式a ab cd efg i jk gsub a 1 abcdefgijk 發現只是把括號去除了,沒有去掉括號當中的字元。gsub a 1 abjk 能去掉第乙個左括號和第乙個右括號之間的字元gsub a 1 abefgjk 終於去掉所有的括號 然後...