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...