题目链接

题意

给一个大小写字符串,求最少敲击字符串次数,最开始和最后要求shift都是down的。如日常,大小写转换可以ctrl+z或者shift保持 up/down。

题解

两个dp数组,一个表示当前shift状态是up的最小转换次数,一个表示当前shift状态是down的最小转换次数。最后做处理和比较,再加上字符数即可。

代码

import java.util.Scanner;

public class Main {
public static void main(String args[]) {
Scanner in=new Scanner(System.in);
int n=in.nextInt();
while(n--!=0) {
String s=in.next();
int ans=getMinTypeTime(s);
System.out.println(ans);
}
} public static int getMinTypeTime(String s) {
int[] dpLow=new int[s.length()+1];
int[] dpUp=new int[s.length()+1];
dpLow[0]=0;//
dpUp[0]=1;//
for(int i=1;i<=s.length();++i) {//
if(s.charAt(i-1)>='a'&&s.charAt(i-1)<='z') {
dpLow[i]=Math.min(dpLow[i-1], dpUp[i-1]+1);
dpUp[i]=Math.min(dpLow[i-1]+1, dpUp[i-1]+1);
}
else {
dpUp[i]=Math.min(dpLow[i-1]+1, dpUp[i-1]);
dpLow[i]=Math.min(dpLow[i-1]+1, dpUp[i-1]+1);
}
}
return Math.min(dpLow[s.length()], dpUp[s.length()]+1)+s.length();
}
}

[HDU2577]How to Type(DP)的更多相关文章

  1. hdu 2577 How to Type(DP)

    How to Type Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  2. 【POJ 3071】 Football(DP)

    [POJ 3071] Football(DP) Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4350   Accepted ...

  3. 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)

    .navbar-nav > li.active > a { background-image: none; background-color: #058; } .navbar-invers ...

  4. LightOJ 1033 Generating Palindromes(dp)

    LightOJ 1033  Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  5. lightOJ 1047 Neighbor House (DP)

    lightOJ 1047   Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...

  6. UVA11125 - Arrange Some Marbles(dp)

    UVA11125 - Arrange Some Marbles(dp) option=com_onlinejudge&Itemid=8&category=24&page=sho ...

  7. 初探动态规划(DP)

    学习qzz的命名,来写一篇关于动态规划(dp)的入门博客. 动态规划应该算是一个入门oier的坑,动态规划的抽象即神奇之处,让很多萌新 萌比. 写这篇博客的目标,就是想要用一些容易理解的方式,讲解入门 ...

  8. cannot be resolved to a type (Java)

    最近经常遇到cannot be resolved to a type (Java)报错,以下为在网上找到的解决方案: 1.先看看有没有引用相关jar包2.检查jar是否引用了多个相同的,或者多个jar ...

  9. Tour(dp)

    Tour(dp) 给定平面上n(n<=1000)个点的坐标(按照x递增的顺序),各点x坐标不同,且均为正整数.请设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外 ...

随机推荐

  1. vue报错vue-router.esm.js?8c4f:2007 Uncaught (in promise) NavigationDuplicated {_name: "NavigationDuplicated", name: "NavigationDuplicated"}

    今天在写vue项目配置好路由点击菜单时,突然在控制台报错. 错误信息如下: Uncaught (in promise) NavigationDuplicated {_name: "Navig ...

  2. OAuth2.0分布式系统环境搭建

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 介绍 OAuth(开放授权)是一 ...

  3. 【Spring】看了这篇Spring事务原理,我才知道我对Spring事务的误解有多深!

    写在前面 有很多小伙伴们留言说,冰河,你能不能写一篇关于Spring事务的文章呢?我:可以啊,安排上了!那还等什么呢?走起啊!! 事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有 ...

  4. int ,long , long long , __int64类型的范围

    首先见测试代码(在g++/gcc下运行): #include<iostream> using namespace std; int main() { cout<<sizeof( ...

  5. java文件的写入和读取(按行)

    https://blog.csdn.net/Alexwym/article/details/81078417 https://blog.csdn.net/nickwong_/article/detai ...

  6. 进阶6:连接查询 二、sql99语法

    #二.sql99语法/*语法: select 查询列表 from 表1 别名 [连接类型] join 表2 别名 on 连接条件 [where 筛选条件] [group by 分组] [having ...

  7. 计算机网络-网络层(2)NAT协议

    网络地址转换(NAT,Network Address Translation)协议: 本地网络内通信的IP数据报的源与目的IP地址均在子网10.0.0.0/24内:所有离开本地网络去往Internet ...

  8. Federated Learning: Challenges, Methods, and Future Directions

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1908.07873v1 [cs.LG] 21 Aug 2019 Abstract 联邦学习包括通过远程设备或孤立的数据中心( ...

  9. Http请求-okhttp3基本用法

    简介 HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽.OkHttp是一个高效的HTTP客户端,它有以下默认特性: 支持HTTP/2,允许所有同一个主 ...

  10. 牛客网数据库SQL实战解析(21-30题)

    牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010 ...