字符串中的单词数

题意:

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

输入: “Hello, my name is John”
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。

题目来源: https://leetcode.cn/problems/number-of-segments-in-a-string/description/

解题方法:

方法一: 纯内置函数,explode以空格转数组,array_filter删除空值

// 纯内置函数,explode以空格转数组,array_filter删除空值
function countSegments($s) {
    $arr = explode(' ', $s);
    return count(array_filter($arr));
}

方法二: 先过滤,再拆分,最后再过滤计数

function countSegments($s) {
    $s = trim($s);  //过滤两端空格
    if($s == ' ' || $s == null){
        return 0;
    }
    $arr = explode(' ', $s);    //以空格差分成数组
    $count = 0; //单词数
    foreach($arr as $value){
        if($value != '' || $value != null){
            $count++;
        }
    }
    return $count;
}

方法三:正则匹配,preg_match(‘/[\S]/’,$v) 匹配任何一个非空白字符

// 正则匹配,preg_match('/[\S]/',$v) 匹配任何一个非空白字符
function countSegments($s) {
    $s = trim($s);
    $s_arr = explode(' ', $s);
    if(!preg_match('/[\S]/', $s)){
        return 0;
    }
    $space_count = 0;
    foreach($s_arr as $value){
        if(!preg_match('/[\S]/', $value)){
            $space_count++;
        }
    }
    return count($s_arr) - $space_count;
}

你可能感兴趣的:(PHP,php,数据结构,算法)