LeetCode 1616.分割兩個字符串得到回文串

給你兩個字符串 a 和 b ,它們長度相同。請你選擇一個下標,將兩個字符串都在 相同的下標 分割開。由 a 可以得到兩個字符串: aprefix 和 asuffix ,滿足 a = aprefix + asuffix ,同理,由 b 可以得到兩個字符串 bprefix 和 bsuffix ,滿足 b = bprefix + bsuffix 。請你判斷 aprefix + bsuffix 或者 bprefix + asuffix 能否構成回文串。

當你將一個字符串 s 分割成 sprefix 和 ssuffix 時, ssuffix 或者 sprefix 可以為空。比方說, s = “abc” 那么 “” + “abc” , “a” + “bc” , “ab” + “c” 和 “abc” + “” 都是合法分割。

如果 能構成回文字符串 ,那么請返回 true,否則返回 false 。

注意, x + y 表示連接字符串 x 和 y 。

示例 1:

輸入:a = “x”, b = “y”
輸出:true
解釋:如果 a 或者 b 是回文串,那么答案一定為 true ,因為你可以如下分割:
aprefix = “”, asuffix = “x”
bprefix = “”, bsuffix = “y”
那么 aprefix + bsuffix = “” + “y” = “y” 是回文串。
示例 2:

輸入:a = “xbdef”, b = “xecab”
輸出:false
示例 3:

輸入:a = “ulacfd”, b = “jizalu”
輸出:true
解釋:在下標為 3 處分割:
aprefix = “ula”, asuffix = “cfd”
bprefix = “jiz”, bsuffix = “alu”
那么 aprefix + bsuffix = “ula” + “alu” = “ulaalu” 是回文串。

提示:

1 <= a.length, b.length <= 105^55
a.length == b.length
a 和 b 都只包含小寫英文字母

我們可以先對比a的開頭和b的結尾,直到找到第一個不相同的字符,如下圖:
在這里插入圖片描述
接下來我們只需檢查第一行中間部分和第二行中間部分是否是回文的即可,只要任意一個是回文串,那么就可以分割得到回文串:

class Solution {
public:bool checkPalindromeFormation(string a, string b) {return check(a, b) || check(b, a);}bool check(string &a, string &b) {int left = 0;int right = a.size() - 1;// 找到第一個不相等的字符while (left < right) {if (a[left] != b[right]) {break;}++left;--right;}bool bGood = true;bool aGood = true;while (left < right) {if (b[left] != b[right]) {bGood = false;}if (a[left] != a[right]) {aGood = false;}// 如果兩個串的中間部分都不是回文串if (!aGood && !bGood) {return false;}++left;--right;}return true;}
};

如果字符串的長度為n,則此算法時間復雜度為O(n),空間復雜度為O(1)。

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

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

相關文章

算法【1】

網址&#xff1a;主站 工具補充 1. sort 函數的使用規則 作用&#xff1a;對容器元素進行排序&#xff0c;默認升序。語法&#xff1a;sort(起始迭代器, 結束迭代器, 比較規則) 前兩個參數是排序范圍&#xff1a;[begin, end)&#xff08;包含begin&#xff0c;不包含end&am…

信創國產Linux操作系統匯總:從桌面到服務器,百花齊放

在數字化浪潮席卷全球的今天&#xff0c;操作系統作為信息產業的基石&#xff0c;其戰略地位日益凸顯。曾經由國外巨頭壟斷的格局正悄然改變——中國本土Linux操作系統歷經多年沉淀&#xff0c;已形成了百花齊放的局面。無論是日常辦公、專業開發&#xff0c;還是關鍵行業應用&…

claudia for claude code

一.安裝所有必需的依賴項 1.安裝 Git for Windows 步驟: 訪問 Git 的官方網站 git-scm.com。 下載適用于 Windows 的最新版本安裝程序。 運行安裝程序。在安裝向導的各個步驟中&#xff0c;建議保留所有默認設置&#xff0c;這些設置對于本指南的后續操作已經足夠。 驗證…

企業內外網文件安全傳輸解決方案

企業內外網文件安全傳輸解決方案 基于零信任架構的智能中轉系統設計 一、業務背景與挑戰分析 1.1 企業網絡安全現狀 在數字化轉型浪潮下&#xff0c;企業面臨著前所未有的安全挑戰。傳統的"城墻式"網絡防護已無法滿足現代企業靈活協作的需求。根據《2024年中國企業…

《HCIA-Datacom 認證》希賽三色筆記:詳解 VLAN 間通信的 3 種實現方式

標記說明:&#xffed;掌握內容 &#xffed;次重點 &#xffed;理解內容 在局域網部署中&#xff0c;VLAN 技術通過隔離廣播域提升了網絡安全性和穩定性&#xff0c;但不同 VLAN 間的通信需求又成了新的難題。比如財務部門的電腦&#xff08;VLAN 10&#xff09;需要訪問服務…

Windows 10 系統下的編程字體安裝與配置(VSCode)教程

Windows 10 系統下的編程字體安裝與配置教程 常見的優秀編程字體 開發者社區中有許多備受推崇的編程字體&#xff0c;它們都致力于提升代碼的可讀性和舒適度。以下是一些常見的選擇&#xff1a; Fira Code: 以其豐富的編程連字&#xff08;ligatures&#xff09;而聞名&…

ITIL 4 高速IT:解耦架構——構建快速迭代的技術基座

一、為什么要解耦&#xff1a;從“架構”談到“速度”1.高速IT的真正瓶頸&#xff1a;不是能力&#xff0c;而是架構在我們深入學習ITIL 4 高速IT的時候&#xff0c;大家可能都會有個疑問&#xff1a;為什么有些組織在數字化轉型過程中推得動&#xff0c;有些卻始終難以突破&am…

網絡協議——MPLS(多協議標簽轉發)

一&#xff0c;基本概述1. mpls基本概念MPLS位于二三層之間&#xff0c;可以向所有網絡層提供服務。通過在數據鏈路層和網絡層之間增加額外的MPLS頭部&#xff0c;基于MPLS頭部實現數據快速轉發。2. 控制平面和轉發平面控制平面&#xff1a;負責產生和維護路由信息以及標簽信息…

影刀RPA_初級課程_玩轉影刀自動化_EXCEL操作自動化

聲明&#xff1a;相關內容來自影刀學院&#xff0c;本文章為自用筆記&#xff0c;切勿商用&#xff01;&#xff08;若有侵權&#xff0c;請聯絡刪除&#xff09; 1. 數據的表達 1.1 列表 1.1 獲取一段字符&#xff08;字符串列表的截取 —— 前開后閉&#xff09; 1.2 獲取長…

當貝純凈版_海信ip811n海思mv320處理器安卓4.42及9.0主板優盤免拆刷機固件及教程

海信IP811N安卓4.4.2及安卓9.0主板免拆升級教程 下載固件之前&#xff0c;請拆機確認下主板處理器是否為 海思hi3798mv320處理器&#xff0c;拆機將主板上 位于中心位置的CPU芯片上的黑色貼紙取下 然后查看芯片第二行是否有V32字樣&#xff0c;如下圖 然后進入機頂盒設置&a…

三、平衡橋電路

一、電路結構 由于平衡橋后要連接雙T型橋逆變電路并聯&#xff0c;這里采用平衡橋電路來穩定母線和中線的電壓平衡&#xff0c;使正母線電壓BUS和負母線電壓BUS-相對于中線的電壓大小相等&#xff0c;極性相反&#xff0c;如50VBUS&#xff0c;-50BUS-。 平衡橋電路由兩個電容…

Java-85 深入淺出 MySQL InnoDB 存儲結構:Buffer Pool、寫緩沖與日志機制全解

點一下關注吧&#xff01;&#xff01;&#xff01;非常感謝&#xff01;&#xff01;持續更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持續更新中&#xff01;&#xff08;長期更新&#xff09; AI煉丹日志-30-新發布【1T 萬億】參數量大模型&#xff01;Kim…

Linux救援模式之應用篇

掛載并訪問文件系統1. 首先識別分區 fdisk -l # 查看所有磁盤和分區 lsblk # 以樹狀結構查看塊設備 blkid # 查看分區的UUID和文件系統類型2. 創建掛載點并掛載分區 mkdir /mnt/rescue # 創建掛載點# 掛載根分區(根據你實際的根分區設備) mount /dev/…

【學習路線】游戲開發大師之路:從編程基礎到獨立游戲制作

前言 游戲開發是一個充滿創意和技術挑戰的領域&#xff0c;它融合了編程、美術、音效、設計等多個學科。隨著游戲產業的蓬勃發展&#xff0c;游戲開發已成為最具吸引力的技術職業之一。本文將為您提供一條從零基礎到游戲開發大師的完整學習路線&#xff0c;涵蓋編程基礎、游戲引…

宇樹 G1 部署(九)——遙操作控制腳本 teleop_hand_and_arm.py 分析與測試部署

首先&#xff0c;我使用的是 v1.0 版本&#xff0c;宇樹最近發力了更新的很快&#xff1a;xr_teleoperate-1.0 teleop_hand_and_arm.py 支持通過 XR 設備&#xff08;比如手勢或手柄&#xff09;來控制實際機器人動作&#xff0c;也支持在虛擬仿真中運行。可以根據需要&#x…

第十一天:不定方程求解

每日一道C題&#xff1a;不定方程求解 問題&#xff1a;給定正整數a&#xff0c;b&#xff0c;c。求不定方程 axbyc 關于未知數x和y的所有非負整數解組數。 要求&#xff1a;輸入一行&#xff0c;包含三個正整數a&#xff0c;b&#xff0c;c&#xff0c;兩個整數之間用單個空格…

ElasticStack技術棧概述及Elasticsearch8.2.2集群部署并更換JDK版本為openjdk-17

ElasticStack 一、引言 在當今數據驅動的時代&#xff0c;如何高效地收集、處理和分析日志及其他類型的數據&#xff0c;已成為企業構建可觀測性和運維能力的重要課題。Elastic Stack&#xff08;早期稱為 ELK Stack&#xff09;是一套由 Elastic 公司推出的開源技術棧&#xf…

Doris中文檢索效果調優

一、問題描述 原來的日志系統使用的是ES作為底層存儲&#xff0c;后來因為數據量大了之后&#xff0c;出現了寫入存在阻塞和查詢效率變低的問題。后來決定切換到Doris數據庫。 Doris的優勢根據公開資料來看&#xff0c;它在寫入性能、查詢效率和存儲成本上&#xff0c;都優于…

CDN怎么加速跟防御網站攻擊呢?

**CDN&#xff08;內容分發網絡&#xff09;**通過分布式架構和智能路由技術&#xff0c;不僅可以加速網站內容訪問&#xff0c;還能有效防御多種網絡攻擊&#xff08;如DDoS、SQL注入等&#xff09;。以下是 CDN 如何實現加速和防御的詳細解析&#xff1a;1. CDN 如何加速網站…

【Linux】批量處理多個用戶的 sudo 權限問題

要批量處理多個用戶的 sudo 權限問題&#xff0c;有以下幾種高效方法&#xff1a; 方法一&#xff1a;通過用戶組批量授權&#xff08;推薦&#xff09; 這是最安全便捷的方式&#xff0c;只需將用戶加入已有 sudo 權限組&#xff08;如 wheel 或 sudo&#xff09;&#xff1a;…