1 条题解
-
0
注意到
去除字符串中连续重复的字符,只保留一个,最后输出压缩后字符串的长度。
规则:相邻相同字符压缩成一个,如 qqqqq → q,ww → w
解题思路
初始答案为 1(第一个字符算)从第二个字符开始遍历,
只要和前一个字符不同就答案加一,最终直接输出答案。
.
这是赛时这样写的还是麻烦了 直接计数就好ll n; int main() { AC; int t; cin>>t; while(t--) { cin>>n; string s,ans; string sr; cin>>sr; s=" "+sr; for(int i=1;i<=n;++i) if(s[i]!=s[i-1]) ans+=s[i]; cout<<ans.size()<<'\n'; } return 0; }正解
C++版本
ll n; int main() { AC; int t; cin>>t; while(t--) { cin>>n; string s; string sr; cin>>sr; s=" "+sr; ll ans=0; for(int i=1;i<=n;++i) if(s[i]!=s[i-1]) ans++; cout<<ans<<'\n'; } return 0; }Python版本
import sys def main(): data=sys.stdin.read().split() t=int(data[0]) idx=1 for _ in range(t): n=int(data[idx]) s=data[idx+1] idx+=2 ans=0 s=" "+s for i in range(1,n+1): if s[i]!=s[i-1]: ans+=1 print(ans) if __name__=="__main__": main()
- 1
信息
- ID
- 1160
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 4
- 已通过
- 2
- 上传者