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,
6、Python數據類型
字符 pwd true 數據類型 rem 敏感字符 n) pen 修改 a. 整數 int - 創建 a = 123 a = int(123) - 轉換
leetcode鏈表--6、linked-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 在重構之前 每個程序員都會在某些時候需要重構已存在的代碼。但在這樣做之前請想想下面的問題,這會省去你和其他人很多時間(和痛苦): 開始重構的最佳時機是審查代碼庫和代碼庫的測試代碼的時候。這時
6、Linux 基礎(二)
etc 文件的 gun src ima 五行 加載內核 修改 技術分享 一 正文處理命令及tar命令 1. 使用cat命令進行文件的縱向合並1) 掌握使用cat命令實現文件的縱向合並:a) 例如:使用cat命令將baby.age、baby.kg和baby.sex這三個文件
Redis系列--6、Redis Java連接操作
redis java連接操作安裝要在Java程序中使用使用操作Redis,需要確保有Redis的Java驅動程序和Java設置在機器上。可以檢查看Java教程-學習如何在機器上安裝Java。現在,讓我們來看看如何設置Redis的Java驅動程序。需要下載jedis.jar。請一定要下載它的最新版本。需要包括j
Centos下Yum安裝PHP 5.5、5.6、7.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等
6、Windows下Anaconda2(Python2)和Anaconda3(Python3)的共存
log http 正常 虛擬環境 conda ace alt ide 作用 前言 Anaconda是一個Python的科學計算發行版,包含了超過300個流行的用於科學、數學、工程和數據分析的python Packages。由於Python有2和3兩個版本,因此
6、R語言繪制帶errorbar 的柱狀圖
label lines arp erro 技術 html ide mage name 轉載:http://www.cnblogs.com/xudongliang/p/7283733.html data <- data.frame(mean = c(10, 15),
6、MongoDB學習之主從復制
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--6、logging模塊
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