国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

翻硬幣

2019-11-14 12:06:04
字體:
來源:轉載
供稿:網友

小明正在玩一個“翻硬幣”的游戲

桌上放著排成一排的若干硬幣。我們用 * 表示正面,用 o 表示反面(是小寫字母,不是零)。

比如,可能情形是:**oo***oooo

如果同時翻轉左邊的兩個硬幣,則變為:oooo***oooo

現在小明的問題是:如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,那么對特定的局面,最少要翻動多少次呢?

我們約定:把翻動相鄰的兩個硬幣叫做一步操作,那么要求:

程序輸入:

兩行等長的字符串,分別表示初始狀態和要達到的目標狀態。每行的長度<1000

程序輸出:

一個整數,表示最小操作步數

例如:

用戶輸入:


o****o**** 程序應該輸出:

5 再例如:

用戶輸入:

o**o***o** o***o**o** 程序應該輸出:

1 資源約定:

峰值內存消耗 < 64M

CPU消耗 < 1000ms

請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼

注意: main函數需要返回0

注意: 只使用ANSI C/ANSI C++ 標準,不要調用依賴于編譯環境或操作系統的特殊函數。

注意: 所有依賴的函數必須明確地在源文件中 #include , 不能通過工程設置而省略常用頭文件。

提交時,注意選擇所期望的編譯器類型。

#include <cstdio>#include <iostream>#include <cstring>using namespace std;const int maxn = 1e3 + 5;char s1[maxn];char s2[maxn];int a[maxn];int main(){ scanf("%s",s1); scanf("%s",s2); int len = strlen(s1); for(int i = 0; i < len; i++){ if(s1[i] == s2[i])a[i] = 1; else a[i] = 0; } int count = 0; int k = -1; for(int i = 0; i < len; i++){ if(a[i] == 0){ if(k == -1){ k = i; } else{//如果前已經有一個1了 count += (i - k); k = -1; } } } cout << count << endl; return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桦甸市| 泾源县| 忻州市| 定安县| 平谷区| 库尔勒市| 犍为县| 陵川县| 定陶县| 邻水| 武胜县| 灵山县| 从江县| 永登县| 贡觉县| 扶绥县| 宜黄县| 桦甸市| 夏河县| 肃宁县| 富蕴县| 建阳市| 库尔勒市| 定南县| 长宁区| 正宁县| 屯留县| 汝城县| 贡觉县| 古蔺县| 禹州市| 浪卡子县| 霍城县| 武强县| 博乐市| 济源市| 平泉县| 辉县市| 霍林郭勒市| 乌拉特后旗| 临沭县|