第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++遞歸調(diào)用基礎(chǔ)編程問題

C++遞歸調(diào)用基礎(chǔ)編程問題

慕桂英3389331 2019-04-13 08:37:06
OpenJudge上的一道題,遇到的問題是WrongAnswer,不知道是哪個地方考慮不周沒想到。具體題目:在幼兒園中,老師安排小朋友做一個排隊的游戲。首先老師精心的把數(shù)目相同的小男孩和小女孩編排在一個隊列中,每個小孩按其在隊列中的位置發(fā)給一個編號(編號從0開始)。然后老師告訴小朋友們,站在前邊的小男孩可以和他后邊相鄰的小女孩手拉手離開隊列,剩余的小朋友重新站攏,再按前后相鄰的小男孩小女孩手拉手離開隊列游戲,如此往復(fù)。由于教師精心的安排,恰好可以保證每兩個小朋友都能手拉手離開隊列,并且最后離開的兩個小朋友是編號最小的和最大的兩個小朋友。(注:只有小男孩在前,小女孩在后,且他們兩之間沒有其他的小朋友,他們才能手拉手離開隊列)。請根據(jù)老師的排隊,按小女孩編號從小到大的順序,給出所有手拉手離開隊列的小男孩和小女孩的編號對。樣例輸入((()(())())(()))樣例輸出2356478911012131114015我的代碼:#includeusingnamespacestd;charjudge(charc[]){inti=0;intj=0,k=0;char*sptr;sptr=c;while(sptr[i]!=')'&&i
查看完整描述

2 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

這個問題用一個stack就好了:
#include
#include
intjudge(char*str)
{
	std::stackmystack;
	intind=0;
	while(*str){
		if(*str=='(')
			mystack.push(ind);
		else{
			if(mystack.empty())
				return-1;
			cout<			mystack.pop();
		}
		ind++;
	}
	return0;
}
遞歸代碼,見@邊城狂人的解釋:
int
judgeInt(constchar*str,intcur,int*ind)
{
inti=*ind;
if(!*(str+i))
return-1;
if(*(str+i)=='('){
*ind+=1;
judgeInt(str,i,ind);
judgeInt(str,cur,ind);
}else{
printf("%d%d\n",cur,*ind);
*ind+=1;
}
return0;
}
int
judge(constchar*str)
{
intind=1;
returnjudgeInt(str,0,&ind);
}
                            
查看完整回答
反對 回復(fù) 2019-04-13
  • 2 回答
  • 0 關(guān)注
  • 499 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號