StringBuilder方法的使用-创新互联
这篇文章给大家分享的是StringBuilder的使用方法,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。
网站制作、成都网站设计,成都做网站公司-创新互联已向1000多家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。题目
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方法的使用示范 ,具体使用情况还需要大家自己动手实验使用过才能领会。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网站名称:StringBuilder方法的使用-创新互联
标题路径:http://azwzsj.com/article/iseco.html