java小编程----括号是否匹配
错误示例::: 当
String s = "...(...[....]....{...}...)...(.[..).."; 应输出3
package com.henu.jihe;
/** String s = "...(...[....]....{...}...)...(...).."; 判断括号是否匹配 * 思路:遍历整个String;然后从i=0截取strFirst=s.subString(i,i+1),*然后在截取strEnd = s.substring(i+1);先判断strFirst是否为左括号,若是则判断在*strEnd中是否包含右括号,若包含则count++;*/
public class Demo06 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";int count = 0;//匹配括号的数目for (int i = 0; i < s.length(); i++) {String strFirst = s.substring(i,i+1);String strEnd = s.substring(i+1);if (strFirst.equals("(") && strEnd.contains(")")) {count++;}else if (strFirst.equals("[") && strEnd.contains("]")) {count++;}else if (strFirst.equals("{") && strEnd.contains("}")) {count++;}else {continue;}}System.out.println(count);}
}
再一个错误示例
package com.henu.jihe;import java.util.Arrays;
import java.util.Stack;
import java.util.Vector;/** String s = "...(...[....]....{...}...)...(...).."; 判断括号是否匹配 * 思路:遍历整个String;然后从i=0截取strFirst=s.subString(i,i+1),*然后在截取strEnd = s.substring(i+1);先判断strFirst是否为左括号,若是则判断在*strEnd中是否包含右括号,若包含则count++;*/
public class Demo06_02 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;for (int i = 0; i < str.length; i++) {if ("(".equals(str[i])) {stack.push(str[i]);if (")".equals(str[i+1])) {stack.pop();count++;}}else if ("[".equals(str[i])) {stack.push(str[i]);if ("]".equals(str[i+1])) {stack.pop();count++;}}else if ("{".equals(str[i])) {stack.push(str[i]);if ("}".equals(str[i+1])) {stack.pop();count++;}}else {continue;}}System.out.println(count);}
}
再来个错误示例:::
package com.henu.jihe;import java.util.Arrays;
import java.util.Stack;public class Demo06_03 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;String string = "";for (int i = 0; i+1 < str.length; i++) {if ("(".equals(str[i]) || "[".equals(str[i]) || "{".equals(str[i])) {stack.push(str[i]);string = stack.peek();}
// if (stack.size() != 0) {
// string = stack.peek();System.out.println(string);
// }if ("(".equals(string) && ")".equals(str[i+1])) {stack.pop();count++;}else if ("[".equals(string) && "]".equals(str[i+1])) {stack.pop();count++;}else if ("{".equals(string) && "}".equals(str[i+1])) {stack.pop();count++;}else {continue;}}System.out.println(count);}}
重头戏:正确的::::
package com.henu.jihe;import java.util.Arrays;
import java.util.Stack;public class Demo06_03 {public static void main(String[] args) {String s = "...(...[....]....{...}...)...(...)..";String[] str = s.split("\\.+");System.out.println(Arrays.toString(str));Stack<String> stack = new Stack<>();int count = 0;String string = "";for (int i = 0; i+1 < str.length; i++) {if ("(".equals(str[i]) || "[".equals(str[i]) || "{".equals(str[i])) {stack.push(str[i]);string = stack.peek();}
// if (stack.size() != 0) {
// string = stack.peek();System.out.println(string);
// }if ("(".equals(string) && ")".equals(str[i+1])) {stack.pop();count++;}else if ("[".equals(string) && "]".equals(str[i+1])) {stack.pop();count++;}else if ("{".equals(string) && "}".equals(str[i+1])) {stack.pop();count++;}else {continue;}}System.out.println(count);}}
java小编程----括号是否匹配相关推荐
- java小编程----给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
package com.henu;import java.util.Arrays;/*** @author limengdong* @date 2019年7月19日* @classroom 208bi ...
- java小编程----电话号码组合
仅以此文深刻理解递归!!! package com.henu.lmd;import java.util.ArrayList; import java.util.HashMap; import java ...
- java小编程----四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...
- java小编程----最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...
- java小编程----三数之和
package com.henu.lmd;import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; ...
- java小编程----盛最多水的容器
package com.henu.lmd;import java.util.ArrayList; import java.util.Collections; import java.util.List ...
- java小编程-----读取文本文件csb.txt,统计字符个数,并把结果保存到result.txt
文件路径要写对....!!!!! !!!!!!! 改变.txt文档的字符集,即打开.txt文档,然后另存为,然后下面你会看到的!!!!!!!!!!!!!!!!!!!!!!!!!! package Te ...
- java小编程----反转字符串中的每一个单词
package com.henu.four;public class Test07_3 {// String str= "abc god 中国 java"(较难) 反转每个单词pu ...
- java小编程----在排序数组中查找元素的第一个和最后一个位置
package com.ujiuye.three;import java.util.ArrayList; import java.util.List; /*** @author limengdong* ...
最新文章
- Centos配置yum为阿里源
- 简单的MSSQL恢复删除数据的方法
- 程序员最后可能的出路
- C 语言指针 5 分钟教程
- 一位面试者提到直接调用vuex中mutations方法
- Java 并发总结——线程池
- 面试问题汇总 精选 分析 解答 职业规划 part 2
- 【DevCloud · 敏捷智库】两种你必须了解的常见敏捷估算方法
- JavaScript 评论添加练习
- PCL中将回调函数封装到类中
- hwclock设置日期_hwclock显示系统硬件时钟的日期和时间
- easymule学习----校验dll信息
- java 200以内的素数_Java——200以内的质数
- delphi反编译ded加密解密之反汇编工具
- TJ Wi-Fi不能使用的解决的办法
- 腾讯云服务器如何挂载云硬盘(Linux版本)?
- VB6.0中关于setfocus用法
- 武汉大学计算机技术上机难度,武汉大学计算机技术(专业学位)考研难不难和研究生专业好不好...
- Linux /根目录下子目录的存放内容
- Discuz!更换论坛系统默认头像方法
热门文章
- centos7修改ip地址命令_CentOS7 安装 httpd 服务
- boolean类型_JS核心理论之《数据类型、类型转换、深浅拷贝与参数传递》
- pandas 把某一列中字符串变数值_Python学习教程:Python数据分析实战基础 | 初识Pandas...
- SVD原理及其应用导论
- Maskros的蓝桥刷题之路(1-13)
- Lua 调试(Debug)
- IOCP不可忽视的细节
- Shell运算符:Shell算数运算符、关系运算符、布尔运算符、字符串运算符等
- 秒杀多线程第三篇 原子操作 Interlocked系列函数
- ADO学习(四)ADO扩展IADORecordBinding