package t0815;
/*
* 华为编程题目:输入字符串括号是否匹配
* 若都匹配输出为0,否则为1
* 样例输入:Terminal user [name | number (1)]
* 样例输出:0
* Java版本
*/
/*
* 个人总结:
* (1)语法上Java的输入Scanner使用
* (2)char[] arr=mxf.toCharArray()的使用,将输入的字符串转成字符数组;这样就可以一个
* 一个的遍历
* (3)算法上,这里使用了经典的入栈和出栈的思想
*
*/
import java.util.Scanner;
import java.util.Vector;
public class huawei_StringMatching {
public static void main(String[] args){
System.out.println("请按照规格输入字符串"
);
Scanner ScStr=
new Scanner(System.in);
String sqy =
ScStr.nextLine();
System.out.print(Check(sqy));
}
public static int Check(String mxf){
int count=0
;
int flag=1
;
char[] arr=
mxf.toCharArray();
Vector<Character> vec=
new Vector<Character>
();
for(
int j=0;j<arr.length;j++
){
if(arr[j]=='('
)
{vec.add(arr[j]);count++;}
//入栈,并且计数加1
if(arr[j]=='['
)
{vec.add(arr[j]);count++;}
//入栈,并且计数加1
if(arr[j]==']'
){
if(vec.elementAt(count-1)=='['
)
{vec.remove(count-1);count--;}
//出栈,并且计数减1
}
if(arr[j]==')'
){
if(vec.elementAt(count-1)=='('
)
{vec.remove(count-1);count--;}
出栈,并且计数减1
}
}
if(vec.isEmpty())
flag=0;
// 如果为空,说明可以正确匹配
return flag;
}
}
结果:
请按照规格输入字符串Terminal user [name | number (1)]0
转载于:https://www.cnblogs.com/snowwhite/p/4734304.html
相关资源:数据结构—成绩单生成器