LuoguP7869 「Wdoi-4」使用三个系统程度的能力 题解
Content
现在有一个转换后的文本文件,以一个长度为 \(n\) 的字符串表示。请判断这个文件是用哪一种写的,详情请返回题面。
数据范围:\(n\leqslant 10^5\)。字符串里面至少有一个用来表示换行符的现显式转义符。
Solution
这道题目作为普及模拟赛的第一题挺良心的,虽然说没有 NOIP2018 普及组 T1 那么直接,但是也不难想到。
首先我们看到题目,发现解决此题的突破口是这个显式转义符。
然后再根据 \r 和 \n 出现的情况判断系统就是这样:
- \(\texttt{Windows}\) 系统:两种显式转义符同时出现。
- \(\texttt{Linux}\) 系统:只出现
\n。 - \(\texttt{Mac}\) 系统:只出现
\r。
然后我们再去扫一遍字符串找 \r 和 \n,然后根据找的情况,综合上面的判断标准确定系统就可以做出这道题目了。
注意字符串中间有空格,建议用 getline 读入字符串。详情见代码。
Code
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;
}
}

浙公网安备 33010602011771号