闲来无事,看到别人的面试题,随手写写。
要求:"{"与"}"必须同时出现,"{"必须在"}"前面,允许嵌套
package matcher;
import java.util.Stack;
public class TestMatcher {
public boolean isMatch(String str)
{
if(null==str || "".equals(str))
{
return false;
}
Stack stack = new Stack();
int i = 0;
int len = str.length();
while(i<len)
{
char ch = str.charAt(i);
if('{'==ch)
{
stack.push(ch);
}
else if('}'==ch)
{
if(stack.isEmpty())
{
return false;
}
stack.pop();
}
i++;
}
if(!stack.isEmpty())
{
return false;
}
return true;
}
/**
* @param args
*/
public static void main(String[] args)
{
TestMatcher t = new TestMatcher();
System.out.println(t.isMatch("{{}"));
System.out.println(t.isMatch("}{"));
System.out.println(t.isMatch("{}{}"));
System.out.println(t.isMatch("{abc{123{999{}}}}"));
}
}