演算法很美之字串

2021-09-11 04:01:01 字數 1566 閱讀 1435

描述

fjxmlhx每天都在被沼躍魚刷屏,因此他急切的找到了你希望你寫乙個程式遮蔽所有句子中的沼躍魚(「marshtomp」,不區分大小寫)。為了使句子不缺少成分,統一換成 「fjxmlhx」 。

輸入輸入包括多行。

每行是乙個字串,長度不超過200。

一行的末尾與下一行的開頭沒有關係。

輸出輸出包含多行,為輸入按照描述中變換的結果。

樣例輸入

the marshtomp has seen it all before.

marshtomp is beaten by fjxmlhx!

amarshtompb

樣例輸出

the fjxmlhx has seen it all before.

fjxmlhx is beaten by fjxmlhx!

afjxmlhxb

思路:檢測連續的9個字母是否為marshtomp,如果是則輸出fjxmlhxb,如果不是則輸出原字元

本人ac**

#include

#include

main()

if(j==9)

}}else

printf

("%c"

,s[i]);

//否則原樣輸出

}printf

("\n");

}return0;

}

描述

如果乙個字串恰好包含2個』h』、1個』i』和1個』o』,我們就稱這個字串是hiho字串。

例如"oihateher"、"hugeinputhugeoutput"都是hiho字串。

現在給定乙個只包含小寫字母的字串s,小hi想知道s的所有子串中,最短的hiho字串是哪個。

輸入字串s

對於80%的資料,s的長度不超過1000

對於100%的資料,s的長度不超過100000

輸出找到s的所有子串中,最短的hiho字串是哪個,輸出該子串的長度。如果s的子串中沒有hiho字串,輸出-1。

樣例輸入

樣例輸出

5
思路:尺取法

本人ac**

#include 

#include

#include

int min

(int a,int b)

int f[

100]=;

int main()

if(temp)

if(f[

'h'-

'a']==2

&& f[

'i'-

'a']==1

&& f[

'o'-

'a']==1

)}if(l==

100005

)printf

("-1\n");

else

printf

("%d\n"

,l);

return0;

}

演算法之字串字元統計

分析和思路 用map建立字元對映,並賦值到pair結構裡,然後用vector的sort 優先順序排序 1 此檔案包含 main 函式。程式執行將在此處開始並結束。2 34 include 5 include 6 include algorithm 7 include 8 include 9 usin...

演算法之 字串匹配演算法

一說到兩個字串匹配,我們很自然就會想到用兩層迴圈來匹配,用這種方式就可以實現乙個字串是否包含另乙個字串了,這種演算法我們稱為 bf演算法。bf演算法,即暴力 brute force 演算法,是普通的模式匹配演算法,bf演算法的思想就是將目標串 s 的第乙個字元與模式串 t 的第乙個字元進行匹配,若相...

字串 之 KMP演算法

kmp演算法是一種改進的字串匹配演算法,由d.e.knuth與v.r.pratt和j.h.morris同時發現,因此人們稱它為克努特 莫里斯 普拉特操作 簡稱kmp演算法 在介紹kmp演算法之前,先介紹一下bf演算法。一.bf演算法 bf演算法是普通的模式匹配演算法,bf演算法的思想就是將目標串s的...