给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则: 1.左括号'(‘必须有对应的右括号’)’ 2.右括号’)’必须有对应的左括号'(‘ 3.左括号必须在对应的右括号前面 4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符 5.空字符串也视为合法的括号字符串 数据范围:-笔试面试资料

这是qklbishe.com第19541 篇笔试面试资料
提供答案分析,通过本文《给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则: 1.左括号'(‘必须有对应的右括号’)’ 2.右括号’)’必须有对应的左括号'(‘ 3.左括号必须在对应的右括号前面
4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符 5.空字符串也视为合法的括号字符串
数据范围:-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则:
1.左括号'(‘必须有对应的右括号’)’
2.右括号’)’必须有对应的左括号'(‘
3.左括号必须在对应的右括号前面
4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符
5.空字符串也视为合法的括号字符串
数据范围:
给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则:    1.左括号'('必须有对应的右括号')'    2.右括号')'必须有对应的左括号'('      3.左括号必须在对应的右括号前面      4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符    5.空字符串也视为合法的括号字符串          数据范围:
Java

给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则:    1.左括号'('必须有对应的右括号')'    2.右括号')'必须有对应的左括号'('      3.左括号必须在对应的右括号前面      4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符    5.空字符串也视为合法的括号字符串          数据范围: 零葬

需要正序和倒序遍历两遍,分别把星号当做左括号和右括号。从左往右遍历,把星号视为左括号,在遍历的过程中如果出现左括号数量比右括号数量少就返回false;然后从右往左遍历,把星号视为右括号,在遍历的过程中如果出现右括号数量比左括号少就返回false。两趟遍历下来还没返回false就返回true。
import java.util.*;   public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param s string字符串       * @return bool布尔型      */     public boolean isValidString (String s) {         // write code here         int left = 0, right = 0, star = 0;         for(int i = 0; i < s.length(); i++){             char c = s.charAt(i);             if(c == '('){                 left ++;             }else if(c == ')'){                 right ++;             }else{                 star ++;             }             if(left + star < right) return false;         }         left = 0;         right = 0;         star = 0;         for(int i = s.length() - 1; i >= 0; i--){             char c = s.charAt(i);             if(c == '('){                 left ++;             }else if(c == ')'){                 right ++;             }else{                 star ++;             }             if(right + star < left) return false;         }         return true;     } }

2021-12-26 22:25:18 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 给定一个字符串s,字符串s只包含以下三种字符: (,*,),请你判断 s是不是一个合法的括号字符串。合法括号字符串有如下规则: 1.左括号'(‘必须有对应的右括号’)’ 2.右括号’)’必须有对应的左括号'(‘ 3.左括号必须在对应的右括号前面 4.*可以视为单个左括号,也可以视为单个右括号,或者视为一个空字符 5.空字符串也视为合法的括号字符串 数据范围:-笔试面试资料

提供最优质的资源集合

立即查看 了解详情