首页 > 其他 > 详细

括号匹配(一个已知括号组的完成)

时间:2020-12-22 08:57:53      阅读:40      评论:0      收藏:0      [点我收藏+]

今天实现了一下,发现遍历找左括号没有必要,但是需要记录result_array的值,因为在排序时不断改变原本数组的值,所以在最后输出,需要一个初始的数组。

include <stdio.h>

	int main()
	{
		char a[8]={‘(‘,‘(‘,‘(‘,‘)‘,‘(‘,‘)‘,‘)‘,‘)‘};
		int remark_array[8]={0};
		for(int i=0;i<8;i++) remark_array[i]=i+1;
		int sum_left;
		int result_array[4][2];
		int p=0;
		int sort_array[4]={0};
		
		int right_now_location;	
		int left_location;
		for(int j=0;j<8;j++)
		{
			if(a[j]==‘)‘)
			{
				
				right_now_location=j;
				left_location=j-1;
				while(remark_array[left_location]<0)
				{
					left_location--;
				}
				result_array[p][0]=left_location+1;
				result_array[p][1]=right_now_location+1;
				p++;
				remark_array[left_location]=-1;
				remark_array[right_now_location]=-1;
			}
			
		}
		int mid_array[4][2];
		for(int i=0;i<4;i++)
			for(int j=0;j<4;j++)
				mid_array[i][j]=result_array[i][j];
		int min_num=0;
		int min;
		for(int i=0;i<p;i++)
		{
			int min=result_array[0][0];
			min_num=0;
			for(int j=1;j<p;j++)
			{
				
				if(result_array[j][0]<min) 
				{
					min=result_array[j][0];
					min_num=j;
				}
			}
			sort_array[i]=min_num;
			result_array[min_num][0]=100001;
		 }
		 for(int i=0;i<4;i++)
		{
			int n=sort_array[i];
			printf("%d %d\n",mid_array[n][0],mid_array[n][1]);
		} 
	}

括号匹配(一个已知括号组的完成)

原文:https://www.cnblogs.com/tzp-empty-hya/p/14170956.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!