题解 | #单词倒排# 两部分逻辑功能

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <algorithm>
#include <iostream>
using namespace std;

int main() {
    string input,output;
    getline(cin,input);
    int n = input.size();
    int pre = 0;
    for(int i=n-1; i>=0; i--){
        if((input[i] >= 'a' && input[i] <= 'z') || (input[i] >= 'A' && input[i] <= 'Z')){
            output += input[i];
            pre = 1;
        }else if(pre == 1){
            output += " ";
            pre = 0;
        }
    }
    // cout << output << endl;
    for(int i=0;i<output.size();i++){
        int len = 0,tmp = i;
        while( i<output.size() && ((output[i] >= 'a' && output[i] <= 'z') || (output[i] >= 'A' && output[i] <= 'Z'))  ){
            len++;
            i++;
        }
        // cout << len << endl;
        if(len > 0){
            reverse(output.begin()+tmp,output.begin()+tmp+len);
            // cout << output << endl;
        }
    }
    cout << output << endl;
    

    return 0;
}
// 64 位输出请用 printf("%lld")

逻辑1,实现对字符串中非字符部分的转换。

逻辑2,实现对字符串的反转。

全部评论

相关推荐

在努力的外卷侠很靠谱:怎么,大家都没保底吗?我这美团已经入职了,不说了,系统派单了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务