本文共 852 字,大约阅读时间需要 2 分钟。
题目的链接在这里:
对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + “abc” + Y 也同样是有效的。
例如,如果 S = “abc”,则有效字符串的示例是:“abc”,“aabcbc”,“abcabc”,“abcabcababcc”。无效字符串的示例是:“abccba”,“ab”,“cababc”,“bac”。
如果给定字符串 S 有效,则返回 true;否则,返回 false。
代码如下:
class Solution { public boolean isValid(String s) { //这道题原本是有用入栈出栈的操作来写的,但是 //看到评论里有个机智的写法,完全可以不用入栈出栈操作 //直接判断他是不是还包含这个 while(s.contains("abc")){ //还包含就替换掉,也就等于删去 s=s.replace("abc",""); } //然后判断这两个是不是相同的 return s.equals(""); }}
代码如下:
class Solution { public boolean isValid(String s) { //创建一个char的栈 Stackcha=new Stack (); //然后就是循环把S放进去,并且如果放的是c的话。就需要判断一下前面几个是不是a和b for(int i=0;i
转载地址:http://xnfen.baihongyu.com/