/*
* 1.cpp
*
* Created on: 2017年8月30日
* Author: Administrator
*/
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string result,s,lock;
int temp = 0 ,answer = 1e9, n;
void press(int i){
s[i-1] = s[i-1] == '1'?'0':'1';
s[i] = s[i] == '1'?'0':'1';
if(i+1<n)
s[i+1] = s[i+1] == '1'?'0':'1';
}
int main(){
cin>>lock>>result;
s = lock;
n = lock.size();
//第一种情况,当前字符不相同时,从下一个字符开始按按钮
for( int i = 1; i<n; i++){
if(s[i-1] != result[i-1]){
press(i);
temp ++ ;
}
}
//可能的结果一:
if(s[n-1] == result[n-1]){
answer = temp ;
}
// 第二种情况:如果前两个按钮不匹配,按第一个按钮,其他按钮不匹配还是按后一个按钮
s = lock;
temp = 1;
if( s[0] != result[0] || s[1] != result[1]){
s[0]
贪心算法:特殊密码锁
最新推荐文章于 2020-03-22 15:55:28 发布
本文探讨了贪心算法在解决特殊密码锁问题中的应用。通过一系列步骤和实例,阐述如何利用贪心策略逐步接近目标,优化求解过程。文章深入浅出,适合对算法和密码学感兴趣的读者。
摘要由CSDN通过智能技术生成