大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章给大家分享的是StringBuilder的使用方法,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。
宁晋网站建设公司创新互联,宁晋网站设计制作,有大型网站制作公司丰富经验。已为宁晋超过千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设要多少钱,请找那个售后服务好的宁晋做网站的公司定做!
LeetCode第20题,这题比较简单,匹配括号.
这是栈的典型应用,括号匹配,当然不需要直接使用栈,使用一个StringBuilder即可:
if(s.isEmpty())
return true;
char a = s.charAt(0);
if (a != '(' && a != '[' && a != '{')
return false;
StringBuilder t = new StringBuilder();
int len = -1;
for(char c:s.toCharArray())
{
if(c == '(' || c == '[' || c == '{')
{
t.append(c);
++len;
}
else
{
if(len == -1)
return false;
char cc = t.charAt(len);
if(
(c == ')' && cc != '(')
||
(c == ']' && cc != '[')
||
(c == '}' && cc != '{')
)
return false;
t.deleteCharAt(len--);
}
}
return len == -1;
首先判断是否为空,再判断第一个字符,然后进入逐个循环判断,若表示左边的括号则append,若表示右边的括号首先判断len,然后取出len处字符进行判断是否匹配,不匹配直接返回false,匹配的话则删除这个字符.最后根据len是否为-1返回最终结果.
其实就是简化一下代码,直接开辟一个大的空间,不需要进行append与delete,只需移动栈顶指针.栈顶指针从1开始,若从0开始的话对于"]"这种情况会报下标越界错误,压栈就是++p,压入字符,出栈直接- - p,然后判断是否匹配即可.
char[] t = new char[s.length() + 1];
int p = 1;
for (char c : s.toCharArray())
{
if (c == '(' || c == '[' || c == '{')
t[p++] = c;
else
{
--p;
if ((c == ')' && t[p] != '(') || (c == ']' && t[p] != '[') || (c == '}' && t[p] != '{'))
return false;
}
}
return p == 1;
上文描述的就是StringBuilder方法的使用示范 ,具体使用情况还需要大家自己动手实验使用过才能领会。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!