今天两道题目,思路和方法和昨天的同源采用的还是双指针算法
题目002最长单词废话不多说直接上代码:
#include题目003倒排单词#include 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; }
直接上代码:
#include#include 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; }
明天会继续学习字符串,明天见。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)