`
一个人旅行
  • 浏览: 91945 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取第n对括号里的内容

阅读更多
题目:给定字符串,如"(A(B)(C(D)(E))F)",写一程序,求第n对括号里的内容。
public static String getContent(int index,String src)
	{
		char[] cs=src.toCharArray();
		int count=1,countLeft=1,countRight=1;
		String result="";
		for(int i=0;i<cs.length;i++)
		{
			char c=cs[i];
			if(c=='(')
			{
				if(count==index)
				{
					for(int j=i;j<cs.length;j++)
					{
						char c2=cs[j];
						if(c2=='(')
						{
							countLeft++;
						}
						if(c2==')')
						{
							countRight++;
						}
						if(countLeft==countRight)
						{
							result=src.substring(i, j+1);
							break;
						}
					}
					break;
				}
				count++;
			}
		}
		return result;
	}

突破口:确定括号index之后,只要找到此index的左括号的索引,然后向后遍历,左括号总数等于右括号总数时的索引即为结束点
分享到:
评论
1 楼 JavaStudyEye 2014-10-10  
非常不错的算法。

相关推荐

    表达式的括号匹配检验问题

    这些括号可以任意嵌套,并且必须成对出现。 #### 二、问题分析 **问题描述:** 设计一个程序,能够检测输入表达式中的括号是否正确匹配。表达式的起始和结束以字符`#`作为标记。如果括号正确匹配,则输出“此...

    用栈实现的括号匹配

    在这个示例中,`isMatch`函数实现了括号匹配的逻辑,`main`函数负责获取用户输入并调用`isMatch`进行判断。注意,此示例仅处理了三种基本的括号类型,并假设输入字符串只包含括号。在实际应用中,可能需要处理更复杂...

    括号匹配 C语言 简单实现

    本文介绍了一个简单的括号匹配程序,使用了栈作为核心数据结构,并通过动态内存分配实现了对括号的有效管理。此程序不仅能够有效地检查括号是否匹配,而且也为学习栈的概念提供了一个很好的实践示例。

    数据结构实验-括号匹配的检验-链栈实现

    ### 数据结构实验:括号匹配检验——链栈实现 #### 实验目的与意义 本实验旨在通过具体的编程实践,帮助学生深入理解并掌握数据结构中的链表和栈这两种基本的数据结构,同时学会如何利用栈来解决实际问题之一:...

    括号匹配代码

    - 如果找到一对括号,则将它们移除,并更新 `a` 的内容。 - **退出条件**:当遍历结束后,若 `a` 的长度没有改变,则表示已经完成匹配,输出剩余字符后结束。 #### 三、代码优化建议 1. **内存管理**:使用 `new`...

    括号匹配(数据结构)

    在编程领域,括号匹配是一项基础且重要的任务,特别是在处理表达式、解析语法或构建抽象语法树时。这里,我们关注的是数据结构在解决括号匹配问题中的应用,特别是使用C语言来实现。数据结构是计算机科学的核心部分...

    C_语言实现_括号匹配_算法实例

    2. **括号结构体定义**:`bracket`结构体用于存储括号对,其中包含两个成员变量`rc`和`lc`,分别代表右括号和左括号。 3. **栈结构体定义**:`sqstack`结构体用于表示顺序栈,包含指针`base`(指向栈底)、`top`...

    括号匹配 栈

    printf("\n括号不匹配!"); } } } } if (empty(s)) printf("\n匹配成功!"); else printf("\n不匹配!"); } ``` #### 主函数 最后,主函数读取用户输入的字符串,并调用`bracketmatch`函数进行括号匹配检测...

    括号匹配判断

    为了保证表达式的正确性,括号必须正确地成对出现且顺序正确。例如,`{( )}` 是正确的括号匹配序列,而 `{( )}]` 则不是。 3. **算法实现**:括号匹配问题可以通过使用栈数据结构来解决。基本思路是遍历输入字符串...

    C#窗体 n乘n矩阵计算对角线之和.zip

    在本文中,我们将深入探讨如何使用C#窗体应用程序来实现一个功能,即计算一个n乘n矩阵的对角线之和。这个程序允许用户输入一个n阶的矩阵,然后计算并显示主对角线(从左上到右下)和副对角线(从右上到左下)的元素...

    括号匹配 数据结构(C语言版)

    ### 括号匹配数据结构(C语言版) #### 知识点概述 本文将详细介绍一个基于栈的数据结构实现括号匹配的过程。该程序通过使用栈来检查输入字符串中的括号是否正确匹配,主要涉及的知识点包括:栈的基本概念、栈的...

    c.zip_括号匹配

    `getMatchingBracket`函数则用于获取与给定括号匹配的伙伴。在`main`函数中,我们调用`isValid`并打印结果。 这个例子展示了如何利用C++的`std::stack`高效地解决括号匹配问题。这种算法的时间复杂度为O(n),其中n...

    C++数据结构括号匹配

    括号匹配主要是指检测一组包含括号(如圆括号 `()`, 方括号 `[]`, 花括号 `{}`)的字符串中的括号是否正确闭合。例如,在数学表达式或编程代码中,确保每对开括号都有相应的闭括号与其对应。 #### 二、算法原理 ...

    C 支持括号,阶乘号的表达式计算程序代码.rar

    该压缩包文件“C 支持括号,阶乘号的表达式计算程序代码.rar”包含了一个用C语言编写的控制台应用程序,该程序能够解析并计算包含括号和阶乘运算符的数学表达式。这个程序对于学习C语言编程、理解表达式解析和算术...

    左右括号匹配(栈实现C语言)1

    这个算法的时间复杂度为O(n),因为我们需要遍历整个输入字符串,空间复杂度也为O(n),在最坏的情况下,栈可能需要存储所有左括号。这个解决方案适用于LeetCode等在线编程平台的C语言题目,可以帮助解决括号匹配的...

    正则中的圆括号()的用途详解

    - **量词**:使用大括号{}定义匹配次数,如{n}匹配前面的元素恰好n次,{n,}至少匹配n次,{n,m}匹配前面的元素至少n次但不超过m次。 ### 正则表达式中括号的区别 除了圆括号之外,正则表达式中还经常用到方括号[]和...

    JAVA获取网页有效邮箱地址

    通过网络请求获取网页内容、使用正则表达式进行数据过滤以及多线程编程优化用户体验是实现这一功能的关键技术点。此外,程序还提供了一个基本的图形用户界面,便于用户操作和查看结果。此方法不仅适用于简单的应用...

    C语言:栈(含括号匹配)仅供初学者

    根据提供的文件信息,本文将对C语言中的栈及其在括号匹配问题中的应用进行详细的解析。此内容适合初学者理解栈的基本概念、实现方法及如何使用栈解决实际问题。 ### C语言栈的基本概念 栈是一种特殊的线性表,只...

Global site tag (gtag.js) - Google Analytics