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

单词拆分

题目描述

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

题目分析

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

代码实现

#include
#include
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 ++;
    // 具体逻辑
}

你可能感兴趣的:(算法,学习,算法,双指针)