给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。
如果不存在最后一个单词,请返回 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)
}
}
网友评论