美文网首页
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