题目:
链接:https://www.nowcoder.com/questionTerminal/8c949ea5f36f422594b306a2300315da?answerType=1&f=discussion
来源:牛客网
计算字符串最后一个单词的长度,单词以空格隔开。
输入描述:
一行字符串,非空,长度小于5000。
输出描述:
整数N,最后一个单词的长度。
示例1
输入
hello world
输出
5
思路:
逆向思维,比如str=“hello world”,从最后一个位置str.length()-1或者str.size()-1开始,如果遇到str[i] !=’ ‘,则计数自加。
#1.str[i]是字符型,是char,用单引号’ ’
#2.string可以进行加减。 比如str=str1+str2
#3.长度str.length()或者str.size()
#4.else{break;}可以退出for循环,这样遇到空格就不再遍历了,不用再进行计数操作,此时的count就是最后一个单词的长度。
#5.getline(cin, inputLine) 其中 cin 是正在读取的输入流,而 inputLine 是接收输入字符串的 string 变量的名称 比如:getline(cin,str);
代码:
#include <iostream>
#include <string>
using namespace std;
int CalculateWord()
{
string str;
getline(cin, str);
int count = 0;
for (int i = str.length()-1; i >= 0 && str.length() <= 5000; i--)
{
if (str[i] != ' ')
{
count++;
}
else
{
break;
}
}
return count;
}
int main()
{
int result = CalculateWord();
cout << result << endl;
system("pause");
return 0;
}