当前位置: 首页 > news >正文

做一个网站需要多长时间网店培训班

做一个网站需要多长时间,网店培训班,购物网站如何做,o2o网站源码app给你一个只包含三种字符的字符串,支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。 有效 字符串符合如下规则: 任何左括号 ‘(’ 必须有相应的右括号 ‘)’。 任何右括号 …

给你一个只包含三种字符的字符串,支持的字符类型分别是 ‘(’、‘)’ 和 ‘*’。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。

有效 字符串符合如下规则:

任何左括号 ‘(’ 必须有相应的右括号 ‘)’。
任何右括号 ‘)’ 必须有相应的左括号 ‘(’ 。
左括号 ‘(’ 必须在对应的右括号之前 ‘)’。
‘*’ 可以被视为单个右括号 ‘)’ ,或单个左括号 ‘(’ ,或一个空字符串 “”。

示例 1:
输入:s = “()”
输出:true

示例 2:
输入:s = “(*)”
输出:true

示例 3:
输入:s = “(*))”
输出:true

提示:
1 <= s.length <= 100
s[i] 为 ‘(’、‘)’ 或 ‘*’

class Solution {
public:bool checkValidString(string s) {stack<int> st1;stack<int> st2;for(int i = 0; i < s.size(); i++){int c = s[i];if(c == '('){st1.push(i);}else if(c == '*'){st2.push(i);}else if(c == ')'){if(!st1.empty()){st1.pop();}else if(!st2.empty()){st2.pop();}else return false;}}while(!st1.empty() && !st2.empty()){int k1 = st1.top();int k2 = st2.top();st1.pop();st2.pop();if(k1 > k2){return false;}}return st1.empty();}
};

时间复杂度:O(n),其中 n 是字符串 s 的长度。需要遍历字符串一次,遍历过程中每个字符的操作时间都是 O(1),遍历结束之后对左括号栈和星号栈弹出元素的操作次数不会超过 n。

空间复杂度:O(n),其中 n 是字符串 s 的长度。空间复杂度主要取决于左括号栈和星号栈,两个栈的元素总数不会超过 n。

这道题,我们可以定义两个栈,一个栈用来储存未匹配的左括号的索引,一个栈用来储存星号的索引。当我们遍历到左括号或者星号的时候,我们就将他的索引推入栈中,当我们遍历到右括号的时候,我们优先将他与左括号进行匹配,没有左括号我们才用星号去匹配。

遍历完字符串了以后,可能会存在还有未匹配的左括号,我们要做的就是将他与星号进行匹配,那么我们就记录栈顶元素,也就是他们各自的索引,由于星号这时候充当的是变成右括号,那么星号的索引必定要大于左括号才可以,如果st1的栈顶索引大于st2的栈顶索引,那么就会返回false,因为这时候找不到一个星号和这个左括号进行匹配。

最后返回st1.empty(),即当st1中的左括号和星号匹配后,依旧还有剩余,那么就是false,如果st1为空,那么就返回true。

贪心

class Solution {
public:bool checkValidString(string s) {int minCount = 0, maxCount = 0;int n = s.size();for(int i = 0; i < n; i++){char c = s[i];if(c == '('){minCount++;maxCount++;}else if(c == ')'){minCount = max(minCount-1, 0);maxCount--;if(maxCount < 0) return false;}else{maxCount++;minCount = max(minCount-1, 0);}}return minCount == 0;}
};

时间复杂度:O(n),其中 n 是字符串 s 的长度。需要遍历字符串一次。
空间复杂度:O(1)

minCount:表示可能的最低括号数。它考虑了 ‘’ 可以为 ‘)’ 的情况,用于平衡括号。
maxCount:表示可能的最高括号数。它考虑了 '
’ 可以为 ‘(’ 的情况,用于平衡括号。

任何情况下,未匹配的左括号数量必须非负,因此当最大值变成负数时,说明没有左括号可以和右括号匹配,返回 false。

http://www.yidumall.com/news/103490.html

相关文章:

  • 怎么样自己做最简单的网站灰色推广
  • 奉化网站建设报价谷歌三件套
  • 独立建设网站制作大数据营销经典案例
  • 公司网站可直接购物支付怎么做网络营销平台
  • 网站谷歌seo做哪些唯尚广告联盟app下载
  • 梧州市网站建设青岛seo计费
  • wordpress子站共享用户名广州seo公司推荐
  • 做商业网站湖州网站建设制作
  • 浙江省建设继续教育网站首页网站关键词优化排名怎么做
  • react可以做门户网站么小程序制作流程
  • 专业网站设计建设公司班级优化大师功能介绍
  • 长沙优化网站方法人工智能培训
  • 成都网站制作公司百度如何优化
  • seo专业培训seo专业培训seo的方法
  • 一键建站哪家信誉好石家庄百度seo排名
  • 百度指数移动版合肥seo软件
  • 购物商城网站建设公司windows优化大师如何卸载
  • vuejs做视频网站设计全国疫情又严重了
  • 中企动力官网 网站网络营销方式都有哪些
  • 如何创建自己公司的网站百度长尾关键词挖掘
  • 做最最优秀的视频网站seo营销推广公司
  • 网页设计网站期末作业营销方案怎么写模板
  • 手机网站开发需要哪些技术广州优化公司哪家好
  • 建网站和开发网站程序员培训班要多少钱
  • cdr做网站一般网络推广应该怎么做
  • 那个合作网站做360推广比较好网站入口
  • 上海做网站seo永久免费用的在线客服系统
  • 东莞 企业 网站制作如何让百度收录网站
  • 书画网站建设方案策划做seo用哪种建站程序最好
  • 网上做调查赚钱的网站有哪些中国十大电商公司排名