今天两道题目,思路和方法和昨天的同源采用的还是双指针算法
题目002最长单词
废话不多说直接上代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str, maxstr;
getline(cin, str);
int maxlen = 0;
for(int i = 0; i < str.size(); i ++)
{
int j = i;
string word;
while(j < str.size() && str[j] != ' ' && str[j] != '.')
{
word += str[j];
j ++;
}
if(j - i + 1 > maxlen)
{
maxstr = word;
maxlen = j - i + 1;
}
i = j;
}
cout << maxstr << endl;
return 0;
}
题目003倒排单词
直接上代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str);
for(int i = str.size() - 1; i >= 0; i -- )
{
int j = i;
string word;
while(j >= 0 && str[j] != ' ')
{
word += str[j];
j --;
}
for(int k = word.size() - 1; k >= 0; k --)
cout << word[k];
cout << ' ';
i = j;
}
return 0;
}
明天会继续学习字符串,明天见。
|