本文主要是介绍csu1093: Caps Lock 模拟水题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入字符串有四种情况,大写开头小写结尾,小写开头大写结尾,大写开头大写结尾,小写开头大写结尾。当存在头两种情况时,后两种情况的字符串都可以无伤插入,然后处理头两种的大小数量关系就可以了,自己画个图答案一下子就出来了。
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int main()
{int N;int ds,db,sames,sameb,ans;string a;while (cin >> N){ans = 0;ds=db=sames=sameb=0;for (int i = 0; i<N; i++){cin >> a;if (a[0] - 'a' <= -7&&a[a.size() - 1] - 'a' <= -7)sameb++;else if(a[0]-'a'>=0&&a[a.size()-1]-'a'>=0)sames++;else if(a[0]-'a'>=0)ds++;elsedb++;for (int j = 1; j<a.size(); j++){if (a[j] -'a'<=-7 && a[j - 1]-'a'>=0 ){ans++;}if (a[j] - 'a' >= 0 && a[j - 1] - 'a' <=-7 ){ans++;}}}if(ds+db!=0){if(ds-db==0)sames=0;else if(ds>db)ans+=ds-db-1;else if(db>ds)ans+=db-ds;}else if(sameb!=0)ans+=1;cout << ans << endl;}return 0;
}
这篇关于csu1093: Caps Lock 模拟水题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!