【c++赛码网编程题

您所在的位置:网站首页 2597大写 【c++赛码网编程题

【c++赛码网编程题

2023-09-12 17:06| 来源: 网络整理| 查看: 265

样例输出

 

题目描述 小明很喜欢打字,今天小红给了小明一个字符串。这个字符串只包含大写和小写字母。 我们知道,按下CapsLock键,可以切换大小写模式。我们在小写模式时候,同时按下shift+字母键,就能写出大写字母。在大写模式的时候,按下shift+字母键,就能写出小写字母。现在问题来了,给你一个字符串,问你最少使用多少个按键,就可以写出这个字符串呢?注意,按shift和字母键,算两次按键。开始时均为小写状态。

输入描述 第一行一个T,表示有T组输入。 接下来T组数据: 每组数据一个字符串s,s的长度小于等于100。仅包含大小写字母。

输出描述 对于每组数据,输出最少按键次数。样例输入 

3 A AA AAAAAA

样例输出

2 3 7

 

解题思路

用变量small表示键入当前字符后并保持输入状态为小写字母,所需的最小次数。若当前字符为大写,则新的small应从(旧的small + 1次shift键 + 1次字母键)和(旧的big + 1次CapsLock键 + 1次字母键)中取较小值。其他情况依次类推。 用变量big表示键入当前字符后并保持输入状态为大写字母,所需的最小次数。

 

#include #include using namespace std; int main(){ int n; cin>>n; vector data; for(int i=0; i>str; int len = str.size(); int small = 0,big=1; for(int j =0;j='A'&&c


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3