简单入手双指针——单词拆分

tech2022-12-25  56

单词拆分

题目描述

给定一组字符串,里面含有许多单词,每个单词之间都有一个空格隔开,要求单独输出每个单词

题目分析

通过双指针算法,一端指着单词头,另一端去找单词尾,找到后返回,并将头指向尾,继续寻找,直到找到末尾为止

代码实现

#include<bits/stdc++.h> #include<string.h> const int N = 1010; using namespace std; int main(){ // 字符串 char str[N]; cin.getline(str, N); int len = strlen(str); for(int i = 0; i < len; i ++){ // 从当前单词开头开始读,读到空格结束 int j = i; while(j < len && str[j] != ' ') j ++; // 逐一输出当前单词的字母 for(int k = i; k < j; k++) cout << str[k]; cout << endl; // 换行 // 重新定义开头 i = j; } return 0; }

输入

this is a pig

输出

this is a pig

总结

主要运用了双指针来进行这道题的分析,双指针基本都是遵循这种结构进行的 gets方法已经被淘汰了,因此选择使用了getline,当然还有其他一些输入方式,可自行尝试

for(int i = 0; i < n; i++){ while(j = i; check(条件)) j ++; // 具体逻辑 }
最新回复(0)