LuoguP7869 「Wdoi-4」使用三个系统程度的能力 题解
阅读原文时间:2023年07月10日阅读:4

现在有一个转换后的文本文件,以一个长度为 \(n\) 的字符串表示。请判断这个文件是用哪一种写的,详情请返回题面。

数据范围:\(n\leqslant 10^5\)。字符串里面至少有一个用来表示换行符的现显式转义符。

这道题目作为普及模拟赛的第一题挺良心的,虽然说没有 NOIP2018 普及组 T1 那么直接,但是也不难想到。

首先我们看到题目,发现解决此题的突破口是这个显式转义符。

然后再根据 \r\n 出现的情况判断系统就是这样:

  • \(\texttt{Windows}\) 系统:两种显式转义符同时出现。
  • \(\texttt{Linux}\) 系统:只出现 \n
  • \(\texttt{Mac}\) 系统:只出现 \r

然后我们再去扫一遍字符串找 \r\n,然后根据找的情况,综合上面的判断标准确定系统就可以做出这道题目了。

注意字符串中间有空格,建议用 getline 读入字符串。详情见代码。

namespace Solution {
    string LuoguP7869 「Wdoi-4」使用三个系统程度的能力 题解s;

    iv Main() {
        getline(cin, s);
        int fln = 0, flr = 0;
        F(int, i, 0, (int)s.size() - 1) if(s[i] == '\\') {
            if(s[i + 1] == 'n') fln = 1;
            if(s[i + 1] == 'r') flr = 1;
        }
        if(fln && flr) printf("windows");
        else if(fln) printf("linux");
        else printf("mac");
        return;
    }
}

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章