51Nod 2149子串水題find

2021-10-05 10:01:55 字數 1890 閱讀 4495

1.0 秒 131,072.0 kb 5 分 初學者1級題

給你兩個字串,乙個母串,乙個子串,請你找出子串第一次在母串**現的位置。如果子串沒有在母串**現過,則輸出-1。

例如子串ab在母串dceab中第一次出現的位置是3,而子串abc則在dceab中沒有出現過。

輸入第一行乙個字串(母串),保證每個字元都是小寫字母。

第二行乙個字串(子串),保證每個字元都是小寫字母。

保證兩個字串的長度都不超過10000,並且大於0。

輸出一行乙個整數,表示子串第一次在母串**現的位置。假如子串沒有在母串**現過,則輸出-1。

輸入樣例

decdagee

age輸出樣例

4c++語言ac**

#include

#include

using

namespace std;

intmain()

複習string 中find函式

查詢(find)

語法:

size_type find

(const basic_string &str, size_type index )

;size_type find

(const

char

*str, size_type index )

;size_type find

(const

char

*str, size_type index, size_type length )

;size_type find

(char ch, size_type index )

;

find()函式:

返回str在字串中第一次出現的位置(從index開始查詢)。如果沒找到則返回string::npos, 也就是-1

沒找到就是a.find(b)==-1返回str在字串中第一次出現的位置(從index開始查詢,長度為length)。如果沒找到就返回string::npos,

返回字元ch在字串中第一次出現的位置(從index開始查詢)。如果沒找到就返回string::npos

例如,

string str1

("alpha beta gamma delta");

unsigned

int loc = str1.

find

("omega",0

);if( loc != string::npos )

cout <<

"found omega at "

<< loc << endl;

else

cout <<

"didn't find omega"

<< endl;

複習c語言中strstr函式,也是返回子串

strstr

語法:

#include

char

*strstr

(const

char

*str1,

const

char

*str2 )

;

功能:函式返回乙個指標,它指向字串str2 首次出現於字串str1中的位置,如果沒有找到,返回null。

應用c語言strstr解題

#include

#include

using

namespace std;

#define maxn 10000

char a[maxn]

,b[maxn]

;int

main()

水題 51Nod1095 Anigram單詞

基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 乙個單詞a如果通過交換單詞中字母的順序可以得到另外的單詞b,那麼定義b是a的anigram,例如單詞army和mary互為anigram。現在給定乙個字典,輸入q個單詞,從給出的字典中找出這些單詞的anigram。第...

51nod1733 提取子串

題目鏈結 先用kmp求出t能出現在s的哪些位置。我們維護這樣的三個dp方程 dp1 i 表示 最後乙個區間結尾r在i的方案數。dp2 i 表示 最後乙個區間結尾r在 0 i 的方案數。dp3 i 表示 最後乙個區間開頭l在 0 i 的方案數。轉移即可,dp2 n 即為答案。複雜度o n o n o ...

51nod2113 丟失的數字 水題

給你m個1到n之間的整數,你能找出1到n中的哪些整數沒有出現嗎?收起第一行2個整數n,m,直接用空格分隔 1 n 100000,m n 表示有m個1到n之間的整數。接下來m行,每行乙個整數ai 1 ai n,資料保證m個數都不相同 每行1個數,從小到大輸出輸入資料中沒有出現過的1到n中的整數。5 3...