字串的問題(substr,find用法)

2021-08-29 02:06:33 字數 2637 閱讀 5620

字串的問題

時間限制:c/c++ 2秒,其他語言4秒

空間限制:c/c++ 262144k,其他語言524288k

64bit io format: %lld

有乙個字串 讓你找到這個字串 s 裡面的子串t 這個子串 t 必須滿足即使這個串的字首 也是這個

串的字尾 並且 在字串中也出現過一次的(提示 要求滿足前字尾的同時也要在字串中出現一次 只是前字尾可不行 輸出最長滿足要求字串)

給出乙個字串 長度 1 到 1e6  全部是小寫字母
如果找的到就輸出這個子串t 如果不行就輸出 just a legend
示例1

fixprefixsuffix

fix
示例2

abcdabc

just a legend

ubstr(字串,擷取開始位置,擷取長度) //返回擷取的字substr('hello world',0,1) //返回結果為 'h'  *從字串第乙個字元開始擷取長度為1的字串

substr('hello world',1,1) //返回結果為 'h'  *0和1都是表示擷取的開始位置為第乙個字元

substr('hello world',2,4) //返回結果為 'ello'

substr('hello world',-3,3)//返回結果為 'rld' *負數(-i)表示擷取的開始位置為字串右端向左數第i個字元

測試:

select substr('hello world',-3,3) value from dual;

find函式的使用:

#include#include

#include

using

namespace

std;

string

s;string

s1;int

main()

asdfghhjd

fghasd

sdaaaa

bb本題題解:

1 #include2 #include3 #include 

4using

namespace

std;

5strings;6

intmain()

721 k++;22}

23if (ans == ""

)24 cout << "

just a legend

"<

25else

26 cout << ans <

27 }

kmp:

1 #include2 #include

3 #include4

using

namespace

std;

5#define n 1000010

6char

s[n];

7int

ne[n],a[n],b[n];

8void

get(intx)9

19}20int

main()

2134

for(i=k;i>=0;i--)

3539

for(i=0;i)

4048

}49 printf("

just a legend\n");

50return0;

51 }

view code

我的wa**

1 #include 2 #include 3 #include 

4 #include 5

using

namespace

std;

6int

n,m;

7char a[1000005];8

char c[1000005];9

char b[1000005

];10

int nxt[100007

];11

void get_nxt(int *nxt,char *a,int

l)1221}

22bool kmp(char *b,char *a,int la,int

lb)23

35else

//匹配完成一次,代表出現了一次,記錄下來

3639

if (j ==lb)

4043}44

return0;

45}46int

main()

4776 t--;

77 p++;78}

79if (!f) cout << "

just a legend

"<

80else cout <

81return0;

82 }

view code

字串問題 字串的統計字串

題目 給定乙個字串str,返回str的統計字串。例如,aaabbadddffc 的統計字串為 a 3 b 2 1 d 3 f 2 c 1 補充題目 給定乙個字串的統計字串cstr,再給定乙個整數index,返回cstr所代表的原始字串上第index個字元。例如,a 1 b 100 所代表的原始字串上...

字串問題 翻轉字串

題目 給定乙個字元型別的陣列chas,請在單詞間做逆序調整,只要做到單詞順序逆序即可,對空格的位置沒有特別要求。例如把chas看成字串為 i love you 調整成 you love i 補充題目 給定乙個字元型別的陣列chas和乙個整數size,請把大小為size的左半區整體移到右半區,右半區整...

字串問題

char str1 abcd char str2 efgh str1 str2 這個操作是合法的,結果也是正確的 這兩個字串都是儲存在棧上,可以修改其中的內容。其中,str1 str2相當於把str2字串的第乙個字元 e 賦給了str1的第乙個字元,因此,str1就變成了 ebcd 但是如果用字串指...