uva1588 - Kickdown
2015-09-05 14:37
267 查看
链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4463
code
1)一开始只考虑下面一块纸片,上面一块纸片往右边移动,导致WA。修改程序编程左边也移动,然后比较左右移动获取的最小值然后输出
code
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; int getMinLen(char* n1 ,char* n2, char* n2_) { int len_n1 = strlen(n1),len_n2 = strlen(n2); for(int i = 0 ; i < len_n2; i ++) { n2_[i] = '3' - n2[i] + '0'; } int i = 0 , j = 0, start= 1 ; while(i < len_n1 && j < len_n2) { if(n1[i] <= n2_[j]) { i++; j++;} else { i = start; j = 0; start ++; } } int minLen = 0; if( j == len_n2) minLen = len_n1; else if( j == 0 && i == len_n1) minLen = len_n1 + len_n2; else if(j != 0 && i == len_n1) minLen = len_n1 + len_n2 - j; return minLen; } int main() { char n1[120],n2[120],n2_[120]; while(scanf("%s",n1) != EOF) { scanf("%s",n2); int len_n1 = strlen(n1),len_n2 = strlen(n2); int rightMinLen = getMinLen(n1,n2,n2_); int leftMinLen = getMinLen(n2,n1,n2_); printf("%d\n", rightMinLen<leftMinLen ? rightMinLen : leftMinLen); } return 0; }注意事项:
1)一开始只考虑下面一块纸片,上面一块纸片往右边移动,导致WA。修改程序编程左边也移动,然后比较左右移动获取的最小值然后输出
相关文章推荐
- Java I/O输入输出流详解
- php设计模式——抽象工厂模式(Abstract Factory)
- Hibernate之映射关联关系
- 我在学习爬虫(一)
- 2.2.2 Transparency (about blending) 透明(关于混合)
- 翻转单词顺序
- hdu 1124 Factorial(末尾0)
- 归并排序之逆序对数
- 中兴通讯2013校招软件笔试题
- java文件的远程传输
- 第二周项目0-宣告“主权”
- 懒加载和抓取策略
- java命名规范
- 8583报文解析
- HDU 2087 剪花布条
- PAT 1084. Broken Keyboard (20)
- 联通宽带10M以下只能3台电脑上网
- 资源汇总
- PHP环境搭建
- 笔试题:删除链表中重复的节点