`
一个人旅行
  • 浏览: 90201 次
  • 性别: 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  
非常不错的算法。

相关推荐

    python语法大合集

    #第⼀种:不带引号,让计算机读懂括号⾥的内容,打印最终的结果 1 &gt;&gt;&gt;print(1+1) 2 2 #第⼆种:带单引号,计算机⽆须理解,原样复述引号中的内容 1 &gt;&gt;&gt;print('秋水共长天一色') 2 秋水共长天一色 #第三种:带...

    正则表达式教程

    &lt;br&gt;3.7 后向引用 &lt;br&gt; 对一个正则表达式模式或部分模式两边添加圆括号将导致相关匹配存储到一个临时缓冲区中,所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容存储。存储子匹配的缓冲区...

    leetcode算法题主函数如何写-leetcode:leetcode.com中的问题代码

    判断key也从字段中获取数据,进一步简化代码 栈预存一个?能够简化栈是否为空的判断,提高执行效率。速度快过70%变成速度快过94% [22] 括号生成 使用递归方式完成,关键是如何将问题拆解成更简单的子问题,这个估计...

    正则巅峰 Regtop

    -g 表示获取,仅仅获取源数据中需要的内容,-g紧接着的后面还有两个缺省元素,第一个一般是t,表示结果以表格形式形式保存,t后面是表格各列之间的分隔符,默认是“,”,一般在要将结果保存为csv文件时会这样设置。...

    C语言实例解析精粹

    第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜数字游戏 011 ...

    C语言学习实例220例

    195 括号匹配 196 字符串逆置 197 SIX/NINE问题 198 单词个数统计 199 方差运算 200 级数运算 201 输出素数 202 素数题 203 序列排序 204 整数各位数字排序 205 字符串字母移位 206 Fibonacc数列 第七部分 游戏篇 ...

    200个经典C程序【源码】

    包含以下内容: 第一部分 基础篇 001 第一个C程序 002 运行多个源文件 003 求整数之积 004 比较实数大小 005 字符的输出 006 显示变量所占字节数 007 自增/自减运算 008 数列求和 009 乘法口诀表 010 猜...

    editplus 代码编辑器html c++ jsp css

    ① 在替换对话框,查找内容里输入“abc.*” ② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮 其中,符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 注意:其实就是正则表达式替换,这里...

    C语言实例解析精粹(第二版) 光盘代码

    C语言实例解析精粹(第二版) 光盘代码 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以...

    c语言经典案例

    实例210 括号匹配检测 310 实例211 用栈及递归计算多项式 313 实例212 链队列 315 实例213 循环缓冲区问题 318 实例214 简单的文本编辑器 321 第13章 位运算操作符 326 实例215 使二进制数特定位翻转 327 实例216 将...

    config4j

    String&gt; * * 每个结点在均支持[]括号内的条件: * ROOT.NODE[name=bb].CNODE[name=ccc]@att1 安条件获取属性值 返回 String * * @author tangkf * @param path * @return *...

    《Java程序设计案例教程》教学课件02Java语言基础.pptx

    模块2 Java语言基础 《Java程序设计案例教程》教学课件02Java语言基础全文共48页,当前为第1页。 学习目标 01 掌握标识符、关键字、分隔符、变量和常量的含义和使用方法。 02 了解Java注释的格式和代码书写风格。 03...

    Shell编程之特殊变量和扩展变量详解

    $n:获取当前执行的Shell脚本的第n个参数值,如n&gt;9,则需要使用用大括号,如${10},各参数间用空格进行分隔 $#:获取当前执行的Shell脚本传入参数的总个数 $*:获取当前执行的Shell所有传入参数,如不加引号则与$@...

    cmd-line-text-editor:一个用 C++ 编写的用于类项目的命令行文本编辑器

    ##Text 编辑器说明这个程序是一个基本的行编辑器,... a [N] 在第 N 行之后和第 N+1 行之前开始添加文本。 按回车开始一个新行,输入 control-D 表示添加模式结束。 如果 N 为零或缺失,则在文件开头添加行。 t [M [N]

    C 语言实例解析精粹(第二版)(书+盘)

    本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以在001目录下找到), ...

    EditPlus 2整理信箱的工具

    ① 在替换对话框,查找内容里输入“abc.*” ② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮 其中,符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 注意:其实就是正则表达式替换,这里...

    Editplus 3[1].0

    ① 在替换对话框,查找内容里输入“abc.*” ② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮 其中,符号的含义如下: “.” =匹配任意字符 “*” =匹配0次或更多 注意:其实就是正则表达式替换,这里...

    C语言精粹(第2版)随书关盘

    C精粹(第2版)的随书关盘 ========================= ◎ 文件说明 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码...

Global site tag (gtag.js) - Google Analytics