说实话我一开始真没看出来怎么做
解读一下:
一些人排队,有些是朋友,都排在一起,所以就当一个人(比如结账时候)
每个人都有自己的标记,并且朋友与朋友之间的标记相同
(注意有可能不是朋友,即不是排在一起的两个人标记也相同,如样例2)
把互相是朋友的人删去,只留下一个人排队
现在问你总共有几个人在排队
(记得加上自己)
其实就是判断这个人和上一个人是不是朋友,即标记是否相同(题目保证相邻的人如果不是朋友标记不同)
楼上方法其实烦了,直接采用变量迭代的方法
#include<iostream>
using namespace std;
int n;
char a,b;//注意是char
int ans;//答案
int main()
{
cin>>n;//读入
for(int i=1;i<=n;i++)
{
cin>>b;//当前人的标记
if(a!=b)ans++;//与前面人的标记不一样
a=b;//迭代,把上一个人的标记改为这个人的(为了下一次的判断)
}
cout<<ans+1<<endl;//加上自己
return 0;
}