其他分享
首页 > 其他分享> > 有效的括号字符串

有效的括号字符串

作者:互联网

题目

给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:

思路

代码

class Solution {
 public static boolean checkValidString(String s) {

                   int n = s.length() ;
                   char[] a=s.toCharArray();
                   int cnt = 0, cnt2 = 0 ;
                   for(int i = 0 ; i < n ; ++ i)
                   {
                       if(a[i] == '*') {
                           cnt2 ++ ;
                       } else if(a[i] == '(') {
                           cnt ++ ;
                       } else
                       {
                           cnt -- ;
                           if(cnt < 0)
                           {
                               if(cnt2 == 0)
                               {
                                   return false ;
                               }
                               cnt2 -- ;
                               cnt ++ ;
                           }
                       }
                   }
                   cnt = cnt2 = 0 ;
                   for(int i = n-1; i >= 0 ; -- i)
                   {
                       if(a[i] == '*') {
                           cnt2 ++ ;
                       } else if(a[i] == ')') {
                           cnt ++ ;
                       } else
                       {
                           cnt -- ;
                           if(cnt < 0)
                           {
                               if(cnt2 == 0)
                               {
                                   return false ;
                               }
                               cnt2 -- ;
                               cnt ++ ;
                           }
                       }
                   }
                   return true ;
               }
           }

通过截图

在这里插入图片描述

标签:cnt,有效,++,括号,cnt2,字符串,--
来源: https://blog.csdn.net/weixin_56512682/article/details/122198539