B3920 [语言月赛 202401] Genshin 玩家

· · 题解

Source & Knowledge

2024 年 1 月语言月赛,由洛谷网校入门计划/基础计划提供。

题目分析

本题考察字符串处理。

可以枚举 s_1 的起点 l_1,从 l_1 向后取出一个长度为 7 的字符串,检验是不是 \texttt{Genshin},就可以判断 s_1 是否合法。

类似的,可以枚举 s_2 的起点 l_2,向后取出一个长度为 6 的字符串,检验是不是 \texttt{player}

从字符串 si 个位置起取出一个长度为 len 的串的方法是 s.substr(i, len)

在枚举时需要注意满足 l_1 \leq l_2,于是直接从 l_1 开始枚举 l_2 即可。

for (int l1 = 0; l1 < s.size(); ++l1) if (s.substr(l1, 7) == "Genshin") {
  for (int l2 = l1; l2 < s.length(); ++l2) if (s.substr(l2, 6) == "player") {
    ++ans;
  }
}

视频题解