日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【蓝桥杯】周期字串

發布時間:2025/3/16 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【蓝桥杯】周期字串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


題目鏈接:http://lx.lanqiao.cn/problem.page?gpid=T297

參考博客:http://blog.csdn.net/violet_echo_0908/article/details/50640899



問題描述 右右喜歡聽故事,但是右右的媽媽總是講一些“從前有座山,山里有座廟,廟里有個老和尚給小和尚講故事,講的什么呢?從前有座山……”這樣循環的故事來搪塞右右。
  我們定義,如果一個字符串是以一個或者一個以上的長度為k的重復字符串所連接成的,那么這個字符串就叫做周期為k的串。
  例如:
  字符串’abcabcabcabc’周期為3,因為它是由4個循環’abc’組成的。它同樣是以6為周期(兩個重復的’abcabc’)和以12為周期(一個循環’abcabcabcabc’)。
  右右現在想給他的朋友大灰狼轉述媽媽講的故事,請幫他寫一個程序,可以測定一個字符串的最小周期。 輸入格式 一個最大長度為100的無空格的字符串。 輸出格式 一個整數,表示輸入的字符串的最小周期。 樣例輸入 HaHaHa 樣例輸出 2 樣例輸入 Return0 樣例輸出 7


思路:思路很簡單,直接看代碼,就是注意最小周期的問題,解決辦法是找到最小周期后停止尋找,直接輸出即可。
代碼:
#include<iostream> #include<cstdio> #include<cstring> #include<string>using namespace std;int main() {string s,s1,subs;int ans,len;while(cin>>s){len=ans=s.size();bool flag=true;for(int i=1; i<len; ++i){ //i表示周期 if( len % i != 0 ) continue; //如果不是整數倍肯定不是周期字符串 flag=true;s1=s.substr(0,i);for(int j=i; j<len; j+=i){if(s1 != s.substr( j, s1.size() ) ){ //取相同的周期與后邊的串進行比較 flag=false;break;}}if(flag ){ans=i;// subs=s1;break; //找到最小周期后應該終止循環,不然不是最小周期 }}printf("%d\n", ans);// cout<<subs;}return 0; }


總結

以上是生活随笔為你收集整理的【蓝桥杯】周期字串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。