leetcode1247. 交換字符使得字符串相同(貪心)

有兩個長度相同的字符串 s1 和 s2,且它們其中 只含有 字符 “x” 和 “y”,你需要通過「交換字符」的方式使這兩個字符串相同。

每次「交換字符」的時候,你都可以在兩個字符串中各選一個字符進行交換。

交換只能發生在兩個不同的字符串之間,絕對不能發生在同一個字符串內部。也就是說,我們可以交換 s1[i] 和 s2[j],但不能交換 s1[i] 和 s1[j]。

最后,請你返回使 s1 和 s2 相同的最小交換次數,如果沒有方法能夠使得這兩個字符串相同,則返回 -1 。

示例 1:

輸入:s1 = “xx”, s2 = “yy”
輸出:1
解釋:
交換 s1[0] 和 s2[1],得到 s1 = “yx”,s2 = “yx”。

代碼

class Solution {public int minimumSwap(String s1, String s2) {int n=s1.length();int ys1=0,xs1=0;for(int i=0;i<n;i++)//統計s1中不匹配的x y的數量if(s1.charAt(i)!=s2.charAt(i)){if(s1.charAt(i)=='x') xs1++;else ys1++;}int xl=xs1%2,yl=ys1%2;if(xl!=yl) return -1;return xl*2+xs1/2+ys1/2;}
}

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

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

相關文章

interop_如何在Blazor中實現JavaScript Interop

interop介紹 (Introduction) In this article, we will learn about JavaScript Interop in Blazor. We will understand what JavaScript Interop is and how we can implement it in Blazor with the help of a sample application.在本文中&#xff0c;我們將學習Blazor中Ja…

Centos 7和 Centos 6開放查看端口 防火墻關閉打開

Centos 7 firewall 命令&#xff1a; 查看已經開放的端口&#xff1a; firewall-cmd --list-ports 開啟端口 firewall-cmd --zonepublic --add-port80/tcp --permanent 命令含義&#xff1a; –zone #作用域 –add-port80/tcp #添加端口&#xff0c;格式為&#xff1a;端口/通訊…

和get redis_SpringBoot整合Redis,你get了嗎?

Our-task介紹本篇博客是我github上our-task&#xff1a;一個完整的清單管理系統的配套教程文檔&#xff0c;這是SpringBootVue開發的前后端分離清單管理工具&#xff0c;仿滴答清單。目前已部署在阿里云ECS上&#xff0c;可進行在線預覽&#xff0c;隨意使用&#xff08;附詳細…

linux課程設計qq,仿QQ聊天系統課程設計.doc

目錄緒論1一&#xff0e;需求分析11.1軟件功能需求分析21.2 安全需求分析2二&#xff0e;總體設計32.1 軟件結構圖32.2 功能描述32.2.1注冊功能概要42.2.2登錄功能概要42.2.3聊天功能概要52.3 安全設計6三&#xff0e;數據庫設計63.1概念結構設計63.2邏輯結構設計73.3物理結構設…

ocp linux 基礎要點

基本命令&#xff1a; 創建/修改/刪除用戶 useradd/usermod/userdel 創建/修改/刪除用戶組 groupadd/groupmod/groupdel 修改所屬用戶/所屬用戶組 chown/chgrp 修改權限 chmod 創建文件夾 mkdir 創建文件 touch 切換目錄 …

leetcode1386. 安排電影院座位(貪心)

如上圖所示&#xff0c;電影院的觀影廳中有 n 行座位&#xff0c;行編號從 1 到 n &#xff0c;且每一行內總共有 10 個座位&#xff0c;列編號從 1 到 10 。 給你數組 reservedSeats &#xff0c;包含所有已經被預約了的座位。比如說&#xff0c;researvedSeats[i][3,8] &…

首席技術執行官_如何在幾分鐘內找到任何首席執行官的電子郵件地址

首席技術執行官by Theo Strauss由西奧斯特勞斯(Theo Strauss) 如何在幾分鐘內找到任何首席執行官的電子郵件地址 (How to find any CEO’s email address in minutes) 銀河電子郵件指南&#xff1a;第一部分 (The Emailer’s Guide To The Galaxy: Part I) I’m 17, so my net…

Linux 查看磁盤或文件夾及文件大小

當磁盤大小超過標準時會有報警提示&#xff0c;這時如果掌握df和du命令是非常明智的選擇。 df可以查看一級文件夾大小、使用比例、檔案系統及其掛入點&#xff0c;但對文件卻無能為力。 du可以查看文件及文件夾的大小。 兩者配合使用&#xff0c;非常有效。比如用df查看哪個…

Python列表基礎

列表&#xff1a;創建列表:list[] 注意&#xff1a;列表里面類型可以是不同的類型 取值&#xff1a;list[2]   替換&#xff1a;注意不要越界(下表超出了可表示范圍) 操作&#xff1a; 合并列表&#xff1a;   list3list2list1 列表的重復:   (list8*3)   判斷元素是否…

樹莓派 觸摸屏_如何用樹莓派搭建一個顆粒物(PM2.5)傳感器

用樹莓派、一個廉價的傳感器和一個便宜的屏幕監測空氣質量。-- Stephan Tetzel(作者)大約一年前&#xff0c;我寫了一篇關于如何使用樹莓派和廉價傳感器測量 空氣質量 的文章。我們這幾年已在學校里和私下使用了這個項目。然而它有一個缺點&#xff1a;由于它基于無線/有線網&a…

shell 25個常用命令

1.列出所有目錄使用量&#xff0c;并按大小排序。 ls|xargs du -h|sort -rn #不遞歸下級目錄使用du -sh2.查看文件排除以#開關和空白行&#xff0c;適合查看配置文件。 egrep -v "^#|^$" filenamesed /#.*$/d; /^ *$/d3.刪除空格和空行。 sed /^$/d filename #刪除空…

tensorflow入門_TensorFlow法律和統計入門

tensorflow入門by Daniel Deutsch由Daniel Deutsch TensorFlow法律和統計入門 (Get started with TensorFlow on law and statistics) What this is about 這是關于什么的 What we will use 我們將使用什么 Get started 開始吧 Shell commands for installing everything you …

centos7 nginx+php5.6+mysql安裝與配置

安裝與配置 php 56的安裝 php的配置寫在 php.ini&#xff0c;可在phpinfo()中查看 //查找已安裝 yum list installed | grep php // php卸載 yum -y remove php56* yum remove httpd* php* 可用的資源&#xff1a;centos 安裝php56nginx nginx php-fpm nginx安裝 sudo rpm -Uv…

leetcode337. 打家劫舍 III(dfs)

在上次打劫完一條街道之后和一圈房屋后&#xff0c;小偷又發現了一個新的可行竊的地區。這個地區只有一個入口&#xff0c;我們稱之為“根”。 除了“根”之外&#xff0c;每棟房子有且只有一個“父“房子與之相連。一番偵察之后&#xff0c;聰明的小偷意識到“這個地方的所有房…

c語言面試題東軟,2012東軟筆試題

1、下列變量定義錯誤的是&#xff24;int a;double b4.5;boolean btrue;float f9.8; (9.8f)2、65%32的值是 D 3%53219103、對于一個三位的正整數 n&#xff0c;取出它的十位數字k(k為整型)的表達式是k n / 10 % 10k ( n - n / 100 * 100 )k n % 10k n / 104、下列語句序列執…

matlab肌電信號平滑濾波_MATLAB圖像處理:43:用高斯平滑濾波器處理圖像

本示例說明了如何使用imgaussfilt來對圖像應用不同的高斯平滑濾波器。高斯平滑濾波器通常用于降低噪聲。將圖像讀入工作區。I imread(cameraman.tif);使用各向同性的高斯平滑核增加標準偏差來過濾圖像。高斯濾波器通常是各向同性的&#xff0c;也就是說&#xff0c;它們在兩個…

Github 簡明教程 - 添加遠程庫

現在的情景是&#xff0c;你已經在本地創建了一個Git倉庫后&#xff0c;又想在GitHub創建一個Git倉庫&#xff0c;并且讓這兩個倉庫進行遠程同步&#xff0c;這樣&#xff0c;GitHub上的倉庫既可以作為備份&#xff0c;又可以讓其他人通過該倉庫來協作&#xff0c;真是一舉多得…

githooks_使用Githooks改善團隊的開發工作流程

githooksby Daniel Deutsch由Daniel Deutsch 使用Githooks改善團隊的開發工作流程 (Improve your team’s development workflow with Githooks) Every product that is developed by more than one programmer needs to have some guidelines to harmonize the workflow.由多…

分享AI有道干貨 | 126 篇 AI 原創文章精選(ML、DL、資源、教程)

一年多來&#xff0c;公眾號【AI有道】已經發布了 140 的原創文章了。內容涉及林軒田機器學習課程筆記、吳恩達 deeplearning.ai 課程筆記、機器學習、深度學習、筆試面試題、資源教程等等。值得一提的是每篇文章都是我用心整理的&#xff0c;編者一貫堅持使用通俗形象的語言給…

c語言qt生成dll與加載dll,Qt制作界面的DLL以及調用

1、將界面做成dll修改pro文件DEFINES WIDGETDLL_LIBRARYTEMPLATE lib修改頭文件#if defined(WIDGETDLL_LIBRARY)# define WIDGETDLLSHARED_EXPORT Q_DECL_EXPORT#else# define WIDGETDLLSHARED_EXPORT Q_DECL_IMPORT#endifclass WIDGETDLLSHARED_EXPORT WidgetDll:public QWi…