题解

· · 题解

题目传送门

其实题目是一道让你筛选重要信息题,重要信息如下:

该字符串不含空格、字符 \texttt:\texttt/,不含两边的尖角括号

  • 一个 \texttt{oh} 表情会增加 a 的魔怔值。
  • 一个 \texttt{hsh} 表情会增加 b 的魔怔值。
  • 其他的任何信息都不会影响魔怔值,魔怔值初始为 0

这道良心题甚至可以只开 intstring

命名变量: int n,a,b,ans=0;string s; .这里需要注意的是 ans 也就是魔怔值总和初始值为 0 ,题目里有,但还是要强调一下。

由题意,首先输入 n , a , b

然后题目中写到“如果你的 getline 无法正常运作”言下之意就是不能用 getline ,所以这里应该用 while(cin>>s)

接下去就是判断里面有没有包含 \texttt{/oh}\texttt{/hsh} ,有前者增加 a 的魔怔值,有后者增加 b 的魔怔值。

最后 cout<<ans<<endl; ,不加 endl 虽然也能过,但它是个好习惯。

代码如下:

#include <bits/stdc++.h>
using namespace std;
int n,a,b,ans=0;
string s;
int main()
{
    cin>>n>>a>>b;
    while(cin>>s)
    {
        if (s=="/oh") ans+=a;
        if (s=="/hsh") ans+=b;
    }
    cout<<ans<<endl;
    return 0;
}