美文网首页
2022-01-27 2047. 句子中的有效单词数

2022-01-27 2047. 句子中的有效单词数

作者: 16孙一凡通工 | 来源:发表于2022-01-27 10:45 被阅读0次

    模拟即可
    Go版本

    func valid(s string) bool {
        hasHyphens := false
        for i, ch := range s {
            if unicode.IsDigit(ch) || strings.ContainsRune("!.,", ch) && i < len(s)-1 {
                return false
            }
            if ch == '-' {
                if hasHyphens || i == 0 || i == len(s)-1 || !unicode.IsLower(rune(s[i-1])) || !unicode.IsLower(rune(s[i+1])) {
                    return false
                }
                hasHyphens = true
            }
        }
        return true
    }
    
    func countValidWords(sentence string) (ans int) {
        for _, s := range strings.Fields(sentence) { // 按照空格分割
            if valid(s) {
                ans++
            }
        }
        return
    }
    

    java版本:

    class Solution {
        public int countValidWords(String sentence) {
    
            // 包含字母,连字符,标点符号
            // 连字符需要左右都是字母
            // 标点符号应当位于 token 的 末尾。
            // '!'、'.' 和 ','
            // '-'
    
            int count=0;
            int value_length=0,value=0;
            int n=sentence.length();
            char temp;
            int value_1=0,value_2=0;
            // for(String value:arr){
            //     value_length=0;
            //      System.out.println("value_length:"+value);
    
               
    
                for(int i=0;i<n;i++){
                    temp=sentence.charAt(i);
                    if(temp==' '){
                    //  System.out.println("value_length:"+value_length);
                    //   System.out.println("value:"+value+" i:"+i+" count: "+count);
                
                    if(value_length==i-value && value_length!=0 && value_1<2 && value_2<2){
                            count++;
                        }
                        value_length=0;
                        value=i+1;
                        value_1=0;
                        value_2=0;
                    
                        continue;
                    }
                    if(temp-'a'<26 && temp-'a'>=0 ){
                        
                        value_length++;
                      
                        continue;
                    }
                    if(temp=='-' && value_length>0 &&  (i!=n-1 && sentence.charAt(i+1)!=' ')){
                       value_length++;
                       value_1++;
                        continue;
                    }
                 if((temp=='!' || temp=='.' || temp==',') && ( i==n-1 ||  
                    (i!=n-1 && sentence.charAt(i+1)==' ' )) ){
                         value_length++;
                         value_2++;
                        continue;
              
                }
                }
                
                // System.out.println("count:"+count);
                                //  System.out.println("value_length:"+value_length);
                    //   System.out.println("value:"+value);
                      if(value_length==n-value && value_length!=0 && value_1<2 && value_2<2){
                            count++;
                        };
                    return count;
     
    
        }
    }
    

    相关文章

      网友评论

          本文标题:2022-01-27 2047. 句子中的有效单词数

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