美文网首页
最后一个单词的长度

最后一个单词的长度

作者: bocsoft | 来源:发表于2018-12-28 17:03 被阅读0次

    给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。

    如果不存在最后一个单词,请返回 0 。

    说明:一个单词是指由字母组成,但不包含任何空格的字符串。

    示例:

    输入: "Hello World"
    输出: 5
    
    

    解决方案:

    package length_of_last_word
    
    import "strings"
    
    //利用循环判断
    func lengthOfLastWord(s string) int{
        size := len(s)
        if size == 0 {
            return 0
        }
        res  := 0
        for i := size -1; i >= 0; i--{
            if s[i] == ' '{
                if res != 0 {
                    return res
                }
                continue
            }
            res++
        }
        return res
    }
    
    // 利用GO strings API
    func lengthOfLastWord2(s string) int {
        if len(s) <= 0 {
            return 0
        }
        results := strings.Fields(s)
        size := len(results)
        if size <= 0{
            return 0
        }
        return len(results[size-1])
    }
    
    
    package length_of_last_word
    
    import (
        "fmt"
        "github.com/stretchr/testify/assert"
        "testing"
    )
    
    type question struct {
        para
        ans
    }
    
    // para 是参数
    type para struct {
        s string
    }
    
    // ans 是答案
    type ans struct {
        one int
    }
    
    func TestLengthOfLastWord(t *testing.T) {
        ast := assert.New(t)
    
        qs := []question{
    
            question{
                para{
                    "haha",
                },
                ans{
                    4,
                },
            },
    
            question{
                para{
                    "haha ",
                },
                ans{
                    4,
                },
            },
    
            question{
                para{
                    "",
                },
                ans{
                    0,
                },
            },
    
            question{
                para{
                    "Hello World",
                },
                ans{
                    5,
                },
            },
    
            // 如需多个测试,可以复制上方元素。
        }
    
        for _, q := range qs {
            a, p := q.ans, q.para
            fmt.Printf("~~%v~~\n", p)
    
            ast.Equal(a.one, lengthOfLastWord2(p.s), "输入:%v", p)
        }
    }
    
    
    

    相关文章

      网友评论

          本文标题:最后一个单词的长度

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