給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常(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 終於去掉所有的括號 然後...