# 字符串最后一个单词的长度

# 描述

对于给定的若干个单词组成的句子,每个单词均由大小写字母混合构成,单词间使用单个空格分隔。输出最后一个单词的长度。

# 输入描述:

在一行上输入若干个字符串,每个字符串代表一个单词,组成给定的句子。 除此之外,保证每个单词非空,由大小写字母混合构成,且总字符长度不超过10^3。

# 示例1:

输入:HelloNowcoder
输出:13
说明:在这个样例中,最后一个单词是 "HelloNowcoder",长度为 13 。

# 示例2:

输入:Nowcoder is a platform
输出:8
说明:在这个样例中,最后一个单词是 "platform",长度为 8 。

# 解题思路

# 方法一:使用Split()方法

  1. 使用split()方法将字符串按照空格分割成单词数组。
  2. 获取单词数组的最后一个元素。
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

var scanner = bufio.NewScanner(os.Stdin)


func main() {
    scanner.Scan()
    s := strings.Split(scanner.Text(), " ")
    l := len(s)
    fmt.Println(len(s[l-1]))
}

# 方法二:使用strings.Fields()方法

  1. 使用strings.Fields()方法将字符串按照空格分割成单词数组。
  2. 获取单词数组的最后一个元素。
package main

import (
	"bufio"
	"fmt"
	"os"
	"strings"
)

var scanner = bufio.NewScanner(os.Stdin)


func main() {
    scanner.Scan()
    s := strings.Fields(scanner.Text())
    l := len(s)
    fmt.Println(len(s[l-1]))
}

# 方法三:从后往前遍历字符串,遇到第一个空格停止

  1. 从后往前遍历字符串
  2. 遇到第一个空格停止
  3. 遍历过程中记录字符个数
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Scan()
    s := scanner.Text()
    n := 0
    for i := len(s)-1; i >=0; i--{
        c := s[i:i+1]
        if c == " "{
            break
        }
        n++
    }
    fmt.Println(n)
}