Acwing---1208. 翻硬幣

翻硬幣

  • 1.題目
  • 2.基本思想
  • 3.代碼實現

1.題目

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

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

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

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

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

我們約定:把翻動相鄰的兩個硬幣叫做一步操作。

輸入格式
兩行等長的字符串,分別表示初始狀態和要達到的目標狀態。

輸出格式
一個整數,表示最小操作步數

數據范圍
輸入字符串的長度均不超過100。
數據保證答案一定有解。

輸入樣例1:

**********
o****o****

輸出樣例1:

5

輸入樣2:
*o**o***o***
*o***o**o***

輸出樣例2:

1

2.基本思想

如果通過每次翻轉兩枚相鄰硬幣,能從狀態一變為狀態二,則兩個狀態之間必定有偶數個不同狀態的硬幣。

模擬法:

從最左側開始遍歷,如果該位置硬幣狀態與目標不同,就翻動該位置和該位置后面的兩枚硬幣。
因為題目說了有解,所以遍歷到倒數第二枚的時候,所有硬幣狀態就與目標相同了。

3.代碼實現

import java.io.*;public class Main {static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));static char[] start = new char[110], aim = new char[110];private static void turn(int i) {if (start[i] == '*') start[i] = 'o';else start[i] = '*';}public static void main(String[] args) throws IOException {start = br.readLine().toCharArray();aim = br.readLine().toCharArray();int cnt = 0;//計數for (int i = 0; i < start.length; i++)if (start[i] != aim[i]) {turn(i);turn(i + 1);cnt++;}System.out.println(cnt);}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714943.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714943.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714943.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python編程小案例—利用flask查詢本機IP歸屬并輸出網頁圖片

Python編程小案例—利用flask查詢本機IP歸屬并輸出網頁圖片 環境&#xff1a;Pycharm Mac OS 源碼如下&#xff1a; from flask import Flask, render_template, requestapp Flask(__name__)app.route(/) def index():return render_template(IP查詢.html)if __name__ __…

文心一言 Python編程之

給一個包含n個整數的數組nums&#xff0c;判斷nums中是否存在三個元素a,b,c&#xff0c;使得abc0?請你找出所有和為0且不重復的三元組。 注意&#xff1a;答案中不可以包含重復的三元組。 示例1&#xff1a; 輸入&#xff1a;nums[-1,0,1,2,-1,-4] 輸出&#xff1a;[[-1,-1,2…

中介者模式

定義&#xff1a;中介者模式&#xff08;Mediator Pattern&#xff09;又稱為調節者模式或調停者模式。用一個中介對象封裝一系列的對象交互&#xff0c;中介者使各對象不需要顯式的相互作用&#xff0c;從而使其耦合松散&#xff0c;而且可以獨立地改變它們之間的交互。 適用…

如何正確選擇一臺大路燈?2024五大出眾品牌大路燈推薦,附超全科普知識整理

大路燈的使用操作非常簡便&#xff0c;而且能夠提供最適合目前用眼的光線環境。但如今市場中卻有一些劣質大路燈&#xff0c;它們的使用體驗不佳&#xff0c;很多客戶反饋說可能會出現光線不穩定、刺眼等問題&#xff0c;甚至會有讓用戶有損傷視力的風險。那么如何選擇一臺大路…

華碩ROG玩家國度幻16air 2024原裝系統恢復安裝教程方法

華碩ROG玩家國度幻16air 2024原裝系統恢復安裝教程方法 重建ASUSRECOVERY恢復功能 支持型號&#xff1a; GU605MI&#xff0c;GU605MY&#xff0c;GU605MZ GU605MV&#xff0c;GU605MU 分3種安裝方法 遠程恢復安裝&#xff1a;https://pan.baidu.com/s/166gtt2okmMmuPUL1…

Spring對IoC的實現

個人名片&#xff1a; &#x1f43c;作者簡介&#xff1a;一名大三在校生&#xff0c;喜歡AI編程&#x1f38b; &#x1f43b;???個人主頁&#x1f947;&#xff1a;落798. &#x1f43c;個人WeChat&#xff1a;hmmwx53 &#x1f54a;?系列專欄&#xff1a;&#x1f5bc;?…

Qt使用QSettings類來讀寫ini

在Qt中&#xff0c;可以使用QSettings類來讀寫ini文件。QSettings提供了一個簡單的接口&#xff0c;用于訪問和修改ini文件中的鍵值對。 下面是使用QSettings類來寫入ini文件的示例代碼&#xff1a; #include <QCoreApplication> #include <QSettings>int main(i…

前端monorepo大倉共享復雜業務組件最佳實踐

一、背景 在 Monorepo 大倉模式中&#xff0c;我們把組件放在共享目錄下&#xff0c;就能通過源碼引入的方式實現組件共享。越來越多的應用愿意走進大倉&#xff0c;正是為了享受這種組件復用模式帶來的開發便利。這種方式可以滿足大部分代碼復用的訴求&#xff0c;但對于復雜…

JAVA *數據庫連接池 * 接JDBC

一.介紹: 數據庫連接池實際上就是一個 " 容器 " 當有多個擁護需要訪問數據庫的時候, 一個用戶會打開一個數據庫連接, 但是!當用戶離開的時候,就會斷開數據庫連接,那么數據庫連接就作廢了,之后如果還有用戶需要進行訪問,需要再建立一個數據庫連接......循環往復, …

【Mybatis】快速入門 基本使用 第一期

文章目錄 Mybatis是什么&#xff1f;一、快速入門&#xff08;基于Mybatis3方式&#xff09;二、MyBatis基本使用2.1 向SQL語句傳參2.1.1 mybatis日志輸出配置2.1.2 #{}形式2.1.3 ${}形式 2.2 數據輸入2.2.1 Mybatis總體機制概括2.2.2 概念說明2.2.3 單個簡單類型參數2.2.4 實體…

Web組態可視化編輯器 快速繪制組態

隨著工業智能制造的發展&#xff0c;工業企業對設備可視化、遠程運維的需求日趨強烈&#xff0c;傳統的單機版組態軟件已經不能滿足越來越復雜的控制需求&#xff0c;那么實現Web組態可視化界面成為了主要的技術路徑。 行業痛點 對于軟件服務商來說&#xff0c;將單機版軟件轉變…

計算機視覺基礎知識(十六)--圖像識別

圖像識別 信息時代的一門重要技術;目的是讓計算機代替人類處理大量的物理信息;隨著計算機技術的發展,人類對圖像識別技術的認識越來越深刻;圖像識別技術利用計算機對圖像進行處理\分析\理解,識別不同模式的目標和對象;過程分為信息的獲取\預處理\特征抽取和選擇\分類器設計\分…

重拾C++之菜鳥刷算法第6篇---棧與隊列

棧與隊列 一、用棧實現隊列 題目 請你僅使用兩個棧實現先入先出隊列。隊列應當支持一般隊列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 實現 MyQueue 類&#xff1a; void push(int x) 將元素 x 推到隊列的末尾int pop() 從隊列的開頭移除…

【Hadoop】使用Metorikku框架讀取hive數據統計分析寫入mysql

一、定義作業文件 作業文件 該文件將包括輸入源、輸出目標和要執行的配置文件的位置&#xff0c;具體內容如下 metrics:- /user/xrx/qdb.yaml # 此位置為hdfs文件系統目錄 inputs: output:jdbc:connectionUrl: "jdbc:mysql://233.233.233.233:3306/sjjc"user: &quo…

虛擬帆船:利用技術出海的探險家

在數字化的浪潮中&#xff0c;一個新時代的探險家誕生了。他們不是在尋找未知大陸的勇士&#xff0c;而是在尋求跨界電商和全球游戲市場的先鋒。這些現代探險家的帆船是由SOCKS5代理和代理IP構成的&#xff0c;他們的海圖則是由數據和市場分析繪制的。 出海的第一步&#xff1a…

WebServer -- 注冊登錄

目錄 &#x1f349;整體內容 &#x1f33c;流程圖 &#x1f382;載入數據庫表 提取用戶名和密碼 &#x1f6a9;同步線程登錄注冊 補充解釋 代碼 &#x1f618;頁面跳轉 補充解釋 代碼 &#x1f349;整體內容 概述 TinyWebServer 中&#xff0c;使用數據庫連接池實現…

Linux 內核irq_stack遍歷

環境Centos 4.18.0-80.el8.x86_64 一、x86架構堆棧類型說明 https://www.kernel.org/doc/Documentation/x86/kernel-stacks int get_stack_info(unsigned long *stack, struct task_struct *task,struct stack_info *info, unsigned long *visit_mask) {if (!stack)goto unk…

【深度學習筆記】計算機視覺——圖像增廣

圖像增廣 sec_alexnet提到過大型數據集是成功應用深度神經網絡的先決條件。 圖像增廣在對訓練圖像進行一系列的隨機變化之后&#xff0c;生成相似但不同的訓練樣本&#xff0c;從而擴大了訓練集的規模。 此外&#xff0c;應用圖像增廣的原因是&#xff0c;隨機改變訓練樣本可以…

Python + Selenium —— 下拉菜單處理!

傳統的下拉菜單 Select 元素&#xff0c;由一個 Select 一系列的 option 元素構成。 <select id"source" name"source"><option value"">--請選擇--</option><option value"1001">網絡營銷</option>&…

3.3 序列式容器-deque、stack、queue、heap、priority_queue

deque 3.1定義 std::deque&#xff08;雙端隊列&#xff09;是C標準模板庫&#xff08;STL&#xff09;中的一種容器&#xff0c;表示雙端隊列數據結構。它提供了在兩端高效地進行插入和刪除操作的能力。與vector的連續線性空間類似&#xff0c;但有所不同&#xff0c;deque動…