EOJ 英文缩写词

题目描述
在这里插入图片描述

分析:
这个题其实是LeetCode151翻转字符串的变形题
因为没在纸上写清楚条件,花了我很久,才找出了bug,说明我做题还是有点急躁,哎

这道题给我的启示是:不要上来就敲代码,先把一些关键步骤和整体框架在纸上写清楚

C++代码

/**
 *    @Author: Wilson79
 *    @Datetime: 2020年1月8日 星期三 20:12:21
 *    @Filename: 英文缩写词.cpp
 */
 
#include <iostream>
#include <cstring>

using namespace std;

int main() {
    // ___PEOPLE’S_REPUBLIC___OF__CHINA
    string s1;
    while(getline(cin, s1)) {
        int n = s1.size();

        for (int i = 0, j = 0; i < n;) {
            // 去除连续空格
            while(j < n && ((s1[j] == '-') || (s1[j] == ' '))) j ++;
            if (j == n) break;
            i = j;

            // 核心
            {
                while(j < n && ((s1[j] != '-') && (s1[j] != ' '))) j ++;

                string s = s1.substr(i, j - i);
                char t = s[0];

                // 判断忽略的单词
                for (int k = 0; k < s.size(); k ++) {
                    s[k] = tolower(s[k]);
                }
                if (s != "of" && s != "the" && s != "a" && s != "an" && s != "of" && s != "for" && s != "and") {
                    cout << t;
                }

                i = j;
            }
        }
        cout << endl;
    }

    return 0;
}
发布了182 篇原创文章 · 获赞 71 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qq_43827595/article/details/103904889
今日推荐