牛客题霸 [最长重复子串] C++题解/答案
生活随笔
收集整理的這篇文章主要介紹了
牛客题霸 [最长重复子串] C++题解/答案
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
牛客題霸 [最長(zhǎng)重復(fù)子串] C++題解/答案
題目描述
一個(gè)重復(fù)字符串是由兩個(gè)相同的字符串首尾拼接而成,例如abcabc便是長(zhǎng)度為6的一個(gè)重復(fù)字符串,而abcba則不存在重復(fù)字符串。
給定一個(gè)字符串,請(qǐng)編寫一個(gè)函數(shù),返回其最長(zhǎng)的重復(fù)字符子串。
若不存在任何重復(fù)字符子串,則返回0。
題解:
調(diào)用函數(shù)時(shí)記得傳地址不然只能通過(guò)百分之六十
每次選定起點(diǎn)和長(zhǎng)度,判斷是否存在重復(fù)字符串
代碼:
class Solution { public:/*** 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可* * @param a string字符串 待計(jì)算字符串* @return int整型*/bool judge(string &a,int s,int len){for(int i=s;i<s+len;i++){if(a[i]!=a[i+len])return 0;}return 1;}int solve(string a) {// write code hereint len=a.size();for(int i=len/2;i;i--){for(int s=0;s<=len-i*2;s++){if(judge(a,s,i))return 2*i;}}return 0;} }; 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的牛客题霸 [最长重复子串] C++题解/答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 李学勤:功利化是现在教育的最大问题
- 下一篇: 牛客题霸 [字符串的排列] C++题解/