美文网首页
字符串String类型的题目

字符串String类型的题目

作者: Phoebe_Liu | 来源:发表于2018-12-21 12:22 被阅读0次
  1. 有效的括号字符串
    题目: 给定一个只包含三种类型字符的字符串:'(',')'和 '*', 编写一个函数来检查该字符串是否有效。 我们通过以下规则定义字符串的有效性:

1.任何左括号 '('必须有一个相应的右括号')'。
2.任何右括号 ')' 必须有一个相应的左括号'('。
3.左括号'(' 必须在相应的右括号 ')' 之前。
4.*可以被视为单个右括号')'或单个左括号'('或空字符串。
5.空字符串也有效
思路:l(left)为必须被右括号匹配的左括号数量,cp(couple)为前面左括号和星号数量
解题:

class Solution {
public:
  bool checkValidString(string s) {
    int len=s.size();
    int l=0, cp=0;
    for (int i=0; i<len; i++) {
        if (s[i]=='(') {
            l++;
            cp++;
        } else if (s[i]=='*') {
            if (l>0) {
                l--;
            }
            cp++;
        } else {
            if (l>0) l--;
            cp--;
            if (cp<0) return false;
        }
    }
    if (l==0)
      return true;
    else
      return false;
  }
};

相关文章

网友评论

      本文标题:字符串String类型的题目

      本文链接:https://www.haomeiwen.com/subject/rxsmkqtx.html