1. 程式人生 > >6、交叉佇列

6、交叉佇列

(個人水平有限,請見諒!)

描述:

給出三個佇列 s1,s2,s3 ,判斷 s3 是否是由 s1 和 s2 交叉得來。 如:s1 為 aabcc , s2 為 dbbca。 當 s3 為 aadbbcbcac 時,返回 true(即將 s1 拆成三部分: aa,bc,c 分別插入 s2 對應位置) 否則返回 false。

輸入:

aabcc,dbbca,aadbbcbcac。

輸出:

true。

輸入樣例:

aabcc,dbbca,aadbbcbcac
aabcc,dbbca,aadbbbaccc
a,b,ab
a,b,ba
a,b,ac
abc,bca,bcaabc
abc,bca,aabbcc

輸出樣例:

true
false
true
true
false
true
false

程式碼示例:

#include <iostream>
#include <bits/stdc++.h>

using namespace std;

bool exchange(string s1, string s2, string str)
{
    if (s1.size() + s2.size() != str.size())
        return false;
    if (s1 == "" || s2 == "")
    {
        if
(s1 == str || s2 == str) return true; else return false; } if ((str[str.size() - 1] != s1[s1.size() - 1]) && (str[str.size() - 1] != s2[s2.size() - 1])) return false; if ((str[str.size() - 1] != s1[s1.size() - 1]) && (str[str.size() - 1
] == s2[s2.size() - 1])) return exchange(s1, s2.erase(s2.size()-1,1), str.erase(str.size()-1,1)); if ((str[str.size() - 1] == s1[s1.size() - 1]) && (str[str.size() - 1] != s2[s2.size() - 1])) return exchange(s1.erase(s1.size() - 1, 1), s2, str.erase(str.size() - 1, 1)); if ((str[str.size() - 1] == s1[s1.size() - 1]) && (str[str.size() - 1] == s2[s2.size() - 1])) return exchange(s1, s2.erase(s2.size() - 1, 1), str.erase(str.size() - 1, 1)) || exchange(s1.erase(s1.size() - 1, 1), s2, str.erase(str.size() - 1, 1)); return false; } int main() { char line[1000001]; while (cin.getline(line, 1000000)) { char cs1[1000], cs2[1000], cs3[1000]; string s1, s2, s3; sscanf(line, "%[^,],%[^,],%[^,]", cs1, cs2, cs3); s1 = cs1; s2 = cs2; s3 = cs3; bool result = exchange(s1, s2, s3); cout << (result == true ? "true" : "false") << endl; } return 0; }

相關推薦

6交叉佇列

(個人水平有限,請見諒!) 描述: 給出三個佇列 s1,s2,s3 ,判斷 s3 是否是由 s1 和 s2 交叉得來。 如:s1 為 aabcc , s2 為 dbbca。 當 s3 為 aadbbcbcac 時,返回 true(即將 s1 拆成三部分:

小米oj 6 交叉佇列

引用塊內容描述 給出三個佇列 s1,s2,s3 ,判斷 s3 是否是由 s1 和 s2 交叉得來。 如:s1 為 aabcc , s2 為 dbbca。 當 s3 為 aadbbcbcac 時,返回 true(即將 s1 拆成三部分: aa,bc,c 分別插入 s2 對應位置) 否

小米oj 6. 交叉佇列

dp【i】【j】的狀態為true表示兩種情況: 1,s1的 i 號位等於s3的(i+j)號位 且 dp【i-1】【j】為true 2,s2的 j 號位等於s3的(i+j)號位 且 dp【i】【j

6自學——Linux的學習進度與任務【FHS】

include 同名 med 可選 第三方 安裝 lin 三方 引導 FHS:文件層次標準 FHS:文件層次標準    / : 代表根目錄    /bin: 二進制文件,可執行程序,所有用戶都能用。   /sbin: 只有管理員執行的,二進制可執行程序。

6劍指offer--旋轉數組的最小數字

namespace 數字 log clu 有序 ios end esp offer 題目描述 把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。 輸入一個非遞減排序的數組的一個旋轉,輸出旋轉數組的最小元素。 例如數組{3,4,5,1,2}為{1,2,3,4,

6Python數據類型

字符 pwd true 數據類型 rem 敏感字符 n) pen 修改 a. 整數 int - 創建 a = 123 a = int(123) - 轉換

leetcode鏈表--6linked-list-cycle-ii(有環單鏈表環的入口結點)

pre you head lis 頭結點 tex -a init int 題目描述 Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull

編程的97件事——6在重構之前

ast gin 最好 sts 為什麽 system row man easily 在重構之前 每個程序員都會在某些時候需要重構已存在的代碼。但在這樣做之前請想想下面的問題,這會省去你和其他人很多時間(和痛苦): 開始重構的最佳時機是審查代碼庫和代碼庫的測試代碼的時候。這時

6Linux 基礎(二)

etc 文件的 gun src ima 五行 加載內核 修改 技術分享 一 正文處理命令及tar命令 1. 使用cat命令進行文件的縱向合並1) 掌握使用cat命令實現文件的縱向合並:a) 例如:使用cat命令將baby.age、baby.kg和baby.sex這三個文件

Redis系列--6Redis Java連接操作

redis java連接操作安裝要在Java程序中使用使用操作Redis,需要確保有Redis的Java驅動程序和Java設置在機器上。可以檢查看Java教程-學習如何在機器上安裝Java。現在,讓我們來看看如何設置Redis的Java驅動程序。需要下載jedis.jar。請一定要下載它的最新版本。需要包括j

Centos下Yum安裝PHP 5.55.67.0

mbstring eas common mysql 編譯安裝 test .rpm mysq cli Centos系統自帶的php版本很低,如果我們需要使用高版本的php,可以不用編譯安裝,直接用yum安裝會非常省時省力。 1.檢查當前安裝的PHP包yum list inst

6數組算法

spa nbsp reac 需要 分隔 .so 翻轉 cnblogs 實現 數組常用方法: 1.方法的作用 2.該方法是否需要傳參 3.該方法是否有返回值 4.原數組是否發生改變一、增 刪 替換 5個 ---原數組不變 var ary=[1,3,5]; var r

【JVM】6聊聊JVM常用參數設置

閾值 policy 虛擬機棧 時間戳 ces 增加 action 垃圾 容易 整體考慮堆大小 -Xms3550m, 初始化堆大小。通常情況和-Xmx大小設置一樣,避免虛擬機頻繁自動計算後調整堆大小。 -Xmx3550m,最大堆大小。 考慮分代設置堆大小 首先通過jstat等

6Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存

log http 正常 虛擬環境 conda ace alt ide 作用 前言 Anaconda是一個Python的科學計算發行版,包含了超過300個流行的用於科學、數學、工程和數據分析的python Packages。由於Python有2和3兩個版本,因此

6R語言繪制帶errorbar 的柱狀圖

label lines arp erro 技術 html ide mage name 轉載:http://www.cnblogs.com/xudongliang/p/7283733.html data <- data.frame(mean = c(10, 15),

6MongoDB學習之主從復制

ges 方式 blog for data- director 分享 .com 復制 環境: 主:127.0.0.1:27017 從:127.0.0.1:27018 一、主庫添加配置文件(master = true) port = 27017 dbpath = /data

SQL的連接(外連接內連接交叉連接和自連接)

什麽 等於 簡單 details 總結 src 連接 iss 不能   在查詢多個表時,我們經常會用到連接查詢,連接是關系型數據庫的主要特點,也是它區別於其他類型的數據庫管理系統的一個標誌。 一、什麽是連接查詢   連接查詢:根據兩個表或者多個表的列之間的關系,來從這些表中

python--6logging模塊

exist tar sting 全路徑 onf als mylog 設置 ring logging 可用的日誌級別: debug 10 info 20 warning 30 error 40 critical 50 logging默認參數: 默認日誌級別是warnin

KL散度交叉熵與極大似然 的友誼

ood 進行 映射 滿足 變量 rac 生成 ack kl散度 一. 信息論背景   信息論的研究內容,是對一個信號包含信息的多少進行量化。所采用的量化指標最好滿足兩個條件: (1)越不可能發生的事件包含的信息量越大; (2)獨立事件有增量的信息(就是幾個獨立事件同時發生的

紅帽5紅帽6紅帽7 高可用解決方案的組合程序

resource lin 底層 方式 crm 一個 message 守護 ha集群 紅帽6:corosync 版本1 + pacemaker + pcs或crmsh corosync 版本1 + cman + pacemaker 紅帽7:corosync + pac