描述
有三個字串s,s1,s2,其中,s長度不超過300,s1和s2的長度不超過10。想檢測s1和s2是否同時在s**現,且s1位於s2的左邊,並在s中互不交叉(即,s1的右邊界點在s2的左邊界點的左側)。計算滿足上述條件的最大跨距(即,最大間隔距離:最右邊的s2的起始點與最左邊的s1的終止點之間的字元數目)。如果沒有滿足條件的s1,s2存在,則輸出-1。
例如,s = 「abcd123ab888efghij45ef67kl」, s1=「ab」, s2=「ef」,其中,s1在s**現了2次,s2也在s**現了2次,最大跨距為:18。
輸入三個串:s1, s2, s3,其間以逗號間隔(注意,s1, s2, s3中均不含逗號和空格);
輸出s1和s2在s最大跨距;若在s中沒有滿足條件的s1和s2,則輸出-1。
樣例輸入
abcd123ab888efghij45ef67kl,ab,ef
樣例輸出
181、這道題正常地用迴圈就可以解決了,
2、比較麻煩的是,s的輸入,可以用迴圈解決
3、第三個字串的輸入時判斷條件一開始我僅用了『\n』,但是是不行,在網上看到用eof但也不行,一直是runtime error,後來把兩個合起來才過,猜想是有檔案的輸入所以後面要用eof
#include
char a[
400]
,b[20
],c[20]
;int
main()
} i=k++;if
(p)break;}
p=0;for
(i=lll-
1;i>=
0;i--)}
i=k++;if
(p)break;}
if(p&&m-n-
1>=0)
else
printf
("-1");
}
noi(oj)程式設計基礎篇目錄
26 字串最大跨距
總時間限制 1000ms 記憶體限制 65536kb 描述有三個字串s,s1,s2,其中,s長度不超過300,s1和s2的長度不超過10。想檢測s1和s2是否同時在s 現,且s1位於s2的左邊,並在s中互不交叉 即,s1的右邊界點在s2的左邊界點的左側 計算滿足上述條件的最大跨距 即,最大間隔距離 ...
NOI0107字串最大跨距
這裡是乙個究極瓜皮,十個小時才做出來 這裡是題幹 一道很明顯的模擬題,一般都只要按照題幹的流程就ac了 include using namespace std intmain if flag 1 if flag 2 else if strstr a,b null strstr a,c null z ...
PTA7 7 h0093 字串最大跨距
一 題目描述 二 解題思路 首先利用string把整個字串讀入 然後用逗號進行分隔成三個字串,然後用find和rfind函式解決即可。三 實現 1 include bits stdc h 2 using namespace std 3int main 417 if vis1 vis2 18 s u ...