题解 | #字符串最后一个单词的长度#
字符串最后一个单词的长度
http://www.nowcoder.com/practice/8c949ea5f36f422594b306a2300315da
#include <iostream>
#include <cstring>
using namespace std;
#define maxSize 1000
// 直接定位到最后一个字符串的最后一个元素下标i,再从这个下标出发往前走,遇到'\0'则停止,期间走的步数ret即为最后一个字符串的长度
// 算法缺陷就是字符串之间最多相隔1个'\0'
int fun()
{
char str[maxSize] = {'\0'};
cin.getline(str, maxSize);
int i;
for(i = 0; i < maxSize; i++)
{
if(str[i]!='\0' && str[i+1]=='\0' && str[i+2]=='\0')
break;
}
int j, ret = 0;
for(int j = i; j >= 0; j--)
{
if(str[j] == ' ')
break;
else
++ ret;
}
return ret;
}
int main() {
int ans = fun();
cout << ans << endl;
return 0;
}
查看4道真题和解析
