`
jythoner
  • 浏览: 607954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

轩辕互动面试1题

阅读更多
有一组括号 ((((()()))()()())类似于这样的,写一个算法,判断这样的括号是不是成对的。

private string ReturnStr(string str)
	{
		string myStr = str;
		string[] strTemp = myStr.Split(',');
		do
		{
			strTemp = myStr.Split(',');
			for (int i = 0; i < strTemp.Length; i++)
			{
				if (strTemp[i] != "")
				{
					string starStr = strTemp[i];
					string endStr = i+2  <= strTemp.Length ? strTemp[i + 1] : "";
					if (starStr == "(" && endStr == ")")
					{
						strTemp[i] = "";
						strTemp[i + 1] = "";
					}
				}
			}
			myStr = "";
			for (int i = 0; i < strTemp.Length; i++)
			{
				if (strTemp[i] != "")
				{
					myStr += strTemp[i] + ",";
				}
			}
			myStr.TrimEnd(',');

	} while (myStr.Length>2);
	myStr.TrimEnd(',');
	return myStr;
	}

分享到:
评论
5 楼 爱园园真是太好了 2017-01-03  
package zj.hy.love;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/**
 * 有一组括号 (((()()))()()())类似于这样的(括号为英文),
 * 写一个算法,判断这样的括号是不是成对的,如果成对则输出对应关系
 * @author ZJ
 * @since 2016-12-30
 */
public class Ques20161230_03 {
	
	
	private final Character preBracket = '(';
	private final Character suffBracket = ')';
	
	/**
	 * 判断这样的括号是不是成对的,如果成对则输出对应关系
	 * @param brackets
	 * @return
	 */
	public void printDoubleBracket(String brackets){
		
		char[] bracketArray = brackets.toCharArray();
		int len = bracketArray.length;//括号总数
		if(len%2!=0){// 括号总数为奇数不配对
			System.out.println("括号不成对!");
			return;
		}
		if(bracketArray[0]==suffBracket||bracketArray[len-1]==preBracket){
			System.out.println("括号不成对!");
			return; // 括号以‘)’开始或以'('结尾
		}
		Map<Integer,Integer> bracketMap = new HashMap<Integer,Integer>();
		
		/**
		 * 实现思路:遍历括号,每找到一个')',就判断其前(i-j)一个元素是否为'(',
		 * 如果是,则将当前括号与前一个括号替换为'*',将(i-j)为key,i为value放入map中
		 */
		for (int i = 0; i < len; i++) {//将配对的下标较小的作为map的key,较大的作为value			
			if(bracketArray[i] == suffBracket){	
				for (int j = 1; j <= i; j++) {
					if(bracketArray[i-j]==preBracket){
						bracketArray[i] = '*';
						bracketArray[i-j] = '*';
						bracketMap.put(i-j, i);
						break;
					}
				}
			}			
		}
		Iterator<Integer> keys = bracketMap.keySet().iterator();
		if(bracketMap.size()<len/2){//遍历玩数组后出现剩余括号全部为'('或')'
			System.out.println("括号不成对!");
			return;
		}
		while(keys.hasNext()){
			Integer key = keys.next();
			System.out.println(key+"对应"+bracketMap.get(key));
		}
	}
	
	
	//测试
	public static void main(String[] args) {
		
		Ques20161230_03 ques = new Ques20161230_03();
		String brackets = "(((()()))()()())";		
		ques.printDoubleBracket(brackets);		
	}
}

4 楼 爱园园真是太好了 2017-01-03  
楼主的代码有问题,不信大家看,用','分隔字符串???
3 楼 jinceon 2012-02-25  
)()(也得出true
ryan.liu 写道
这是栈的应用。代码不用这么复杂。
int pair = 0;
for (int i = 0; i < strTemp.Length; i++)
{
    if ('('==strTemp[i])
        pair++;
    else if (')'==strTemp[i])
        pair--;
    
}
return 0==pair;

2 楼 化蝶自在飞 2010-05-18  
应该先判断总数不是么?
1 楼 ryan.liu 2010-04-22  
这是栈的应用。代码不用这么复杂。
int pair = 0;
for (int i = 0; i < strTemp.Length; i++)
{
    if ('('==strTemp[i])
        pair++;
    else if (')'==strTemp[i])
        pair--;
    
}
return 0==pair;

相关推荐

    轩辕剑online、轩辕剑4中PLY模型读取程序源码

    1. lzo.cpp:这是LZO(Lempel-Ziv-Oberhumer)压缩库的实现。LZO是一种快速轻量级的无损数据压缩算法,常用于内存限制或速度敏感的应用中。在这个项目中,LZO可能用于解压PLY文件中可能压缩的数据。 2. tex.cpp:这...

    轩辕剑枫之舞(Dosbox运行)

    《轩辕剑外传 枫之舞》是由大宇资讯制作的角色扮演游戏,于1995年1月6日在台湾发行。这款游戏是轩辕剑系列的首部外传作品。游戏背景设定在战国时期,讲述了墨子弟子辅子彻发现鬼谷子弟子蜀桑子的阴谋后,踏上江湖的...

    轩辕剑java代码

    【标题】:“轩辕剑java代码”揭示了这个压缩包文件主要包含与“轩辕剑”相关的Java编程源代码。轩辕剑,作为一个历史悠久的中国神话传说中的宝剑,可能在此处指的是一个软件项目或游戏的名称,而这个项目或游戏的...

    趴站蹲点\轩辕剑V3.31.zip

    在《轩辕剑V3.31》中,玩家将扮演主角,与其他角色互动,解决谜题,与敌人战斗。游戏采用了回合制战斗系统,玩家可以根据角色的属性和技能策略性地进行战斗。此外,游戏还包含了丰富的物品系统、技能树和角色养成...

    轩辕中学2008—2009学年八年级数学下月考试题精选.doc

    这份文档是轩辕中学2008—2009学年八年级数学下月的考试试题,涵盖了选择题、填空题和解答题等多种题型,主要测试学生的数学能力,包括但不限于代数、不等式、方程、因式分解、几何等知识点。 1. **选择题**: - ...

    手机游戏——轩辕豪侠传-破解版.jar

    最新的手机游戏——轩辕豪侠传-破解版.jar

    轩辕7004硬盘录像机软件

    本设备是专为安防领域设计的一款数字监控产品,它采用了嵌入式处理器和嵌入式操作系统,结合了IT 领域各项最新技术,如视音频压缩/解压缩、大容量硬盘记录、TCP/IP 网络等技术,代码固化在FLASH 中,使得系统运行更...

    VC轩辕剑天之痕【包含图片视频音乐源代码】PART.1

    VC轩辕剑天之痕【包含图片视频音乐源代码】PART.1

    轩辕9500四路软件.zip

    轩辕9500四路软件.zip是一个压缩包文件,包含了专为轩辕品牌的四路采集卡设计的Windows驱动程序和相关工具。这个采集卡是用于监控系统中的,它利用同轴电缆作为传输媒介来捕获和处理视频信号。同轴通信是一种传统而...

    轩辕剑online、轩辕剑4中PLY模型读取工具

    可以读取显示轩辕剑online、轩辕剑4、苍之涛里面的PLY模型。

    轩辕4路监控卡驱动

    【轩辕4路监控卡驱动】是一款专为四通道监控设备设计的硬件驱动程序,由轩辕品牌在2012年6月发布。该驱动程序的主要功能是为4路监控采集卡提供必要的支持,确保视频数据的稳定传输和高质量的图像显示。在监控系统中...

    【站长亲测】轩辕剑一键安装即玩服务端游戏程序+充值后台

    轩辕剑一键安装即玩服务端游戏程序+充值后台

    轩辕剑3外传天之痕完全手册

    轩辕剑3外传天之痕完全手册

    轩辕剑5完全說明手册

    轩辕剑5完全說明手册 轩辕剑5完全說明手册

    轩辕旅行网站源码,全源码

    1. ASP.NET框架:ASP.NET是Microsoft提供的用于构建动态Web应用程序的框架,它简化了服务器端编程,提供了丰富的控件库和强大的数据绑定功能。在这个项目中,开发者可能利用ASP.NET MVC(模型-视图-控制器)或ASP...

    轩辕中学八年级下数学周测试题精选.doc

    7. **实际长度与比例尺的换算**:第15题中给出了交通图的比例尺1:38000,要求计算实际长度,需要理解比例尺的概念,知道图上距离乘以比例尺等于实际距离。 8. **相似多边形**:第9题提到了不同类型的多边形,如等边...

    轩辕剑网络版经验显示工具

    仅显示轩辕剑网络版游戏中的经验数值 支持双开,支持蚩尤再现 不提供外挂功能

    河南省郑州市轩辕2012年九年级数学上学期第一次月考试题(无答案) 北师大版 试题.doc

    这份文档是河南省郑州市轩辕中学2012年九年级数学上学期第一次月考试题,采用的是北师大版教材。试题涵盖了多个初中数学的核心知识点,包括等腰三角形的性质、几何作图、一元二次方程、反证法、二次函数的零点、线段...

    截取轩辕剑6的3D模型

    截取轩辕剑6的3D模型 《轩辕剑陆》正式版(需激活)或试玩版(←我不是来卖萌的,强迫症一定要列全,桑不起…) (2) GameAssassin,游戏模型截取软件。

    通过MAX SDK获取轩辕剑PLY运动矩阵

    通过MAX SDK获取轩辕剑PLY运动矩阵;

Global site tag (gtag.js) - Google Analytics