1. 程式人生 > >習題3-4 週期串 解題報告

習題3-4 週期串 解題報告

題目:
這裡寫圖片描述

程式碼:

#include <iostream>
#include <string.h>
using namespace std;


int main()
{
    char a[85];
    int n,k,i,j;
     cin >> n;
    while(n--)
    {
        cin >> a;
        int len = strlen(a);
        for(i=1;i<=len;i++)
        {
            if(len%i==0)
            {
                for
(k=i;k<len;k++) { if(a[k]!=a[k%i]) break; } if(k==len) { cout << i ; break; } } } if(n)cout << endl; } return
0; }

解析:
1、利用取餘來判斷是否為一個迴圈串。

相關推薦

習題3-4 週期 解題報告

題目: 程式碼: #include <iostream> #include <string.h> using namespace std; int main() { char a[85]; int n,k,i,

演算法競賽入門經典(第二版)第三章陣列和字串習題3-4週期

如果一個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。例如abcabcabc以3為週期(注意,它也以6和12為週期)。輸入一個長度不超過80的字串,輸出其最小週期 #include<stdio.h> int main() { char a[100];

習題3-4 週期(Periodic Strings)

/*週期串(暴力窮舉法)*/ #include <stdio.h> #include<strings.h> int main() { char s[85]; scanf("%s",s); int a,len=0; //a是週期長度,len是字串長度 le

演算法競賽入門經典(第2版)習題3-4 週期 Periodic Strings UVa445

這題把我虐哭了。 提交了13次才ac。 演算法本身沒什麼好說的,UVa上html版和pdf版的輸入輸出格式要求不一樣,以html版為準。 而且html版的輸入輸出格式都有點奇葩,不認真看原文細節是ac不了的。 參考了他的例程,我才找到問題的解決辦法。 UVa評測系統中的空

習題 3-4 週期 UVa455

2.解題思路:在長度範圍之內,一個個列舉週期即可,注意週期應能被總長度整除 3.程式碼: #include<stdio.h> #include<string.h> #incl

習題3-4 週期(Periodic Strings)

#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main() { char s[100]; int

習題 3-4 週期

#include<iostream> #include<cstring> using namespace std; int main(){ int i,j=0,k,t=0;

習題3-4 週期

1.週期的表達方式 %取餘 2.每兩個輸出間空行   while(n--)  if(n) printf("\n") #include <stdio.h> #include <string.h> #define maxn 81 char s[maxn]

習題3-4 週期(Periodic Strings, UVa455)

如果一個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。例 如,abcabcabcabc以3為週期(注意,它也以6和12為週期)。#include "OJ.h" #include <string.h> /* 功能:計算字串的最小週期。 */ i

USACO1.4.3 Arithmetic Progressions 等差數列 解題報告(列舉)

Description 一個等差數列是一個能表示成a, a+b, a+2b,..., a+nb (n=0,1,2,3,...)的數列。 在這個問題中a是一個非負的整數,b是正整數。寫一個程式來找出在雙平方數集合(雙平方數集合是所有能表示成p^2+q^2的數的集合)S中長度為

習題3.4 最長連續遞增子序列(20 分)浙大版《數據結構(第2版)》題目集

space align font list 格式 ott mar 不能 第一次 給定一個順序存儲的線性表,請設計一個算法查找該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列為(3,4,6,8)。 輸入格式: 輸入

洛谷 P2679 子 解題報告

span 出現 但是 math 題目 HA 現在 ons clas P2679 子串 題目描述 有兩個僅包含小寫英文字母的字符串\(A\)和\(B\)。 現在要從字符串\(A\)中取出\(k\)個互不重疊的非空子串,然後把這\(k\)個子串按照其在字符串\(A\)中出現的順

UVa 455 Periodic Strings(習題3-4)

這幾天一直都沒有寫程式碼,主要是有點事情還有就是忙著複習期末考試,所以說最近一段時間都會很少更新了 這道題的話是比較水的,但是因為我在寫程式碼的時候還有有的地方思路沒有想清楚,重複了幾次才過的 一開始想的太簡單了,直接列舉判斷,後來才慢慢修改,還有就是判斷的後面不要加上分號,有時候不細心

JZOJ 5893] [NOIP2018模擬10.4] 括號序列 解題報告 (Hash+棧+map)

題目連結: https://jzoj.net/senior/#main/show/5893 題目: 題解: 考慮暴力怎麼做,我們列舉左端點,維護一個棧,依次加入元素,與棧頂元素和棧內第二個元素相同時彈出棧頂和第二個元素。若某個時刻棧為空則說明當前區間是合法的,累加答案。 為什麼相同就直接彈出呢?

python實現周志華西瓜書《機器學習》習題3.4 對比10折交叉驗證和留一法的對率迴歸錯誤率

這道題仍然在抄大神程式碼的基礎上寫註釋,首先感謝原始碼: https://blog.csdn.net/Snoopy_Yuan/article/details/64131129 感想是:sklearn是個好東西,如果沒有現成的驗證方法,光是10折驗證就要造10個表格才行,而用現成的庫,一

3章 SQL 習題 - 3.4

3.4考慮圖3-18中的保險公司資料庫,其中加下劃線的是主碼。為這個關係資料庫構造出如下SQL查詢: person(driver_id, name, address) car(licence, model, year) accident(report_number, date, loca

hdu2048神、上帝以及老天爺 and hdu2049不容易系列之(4)——考新郎解題報告---錯排+組合(組合數學)

                                     神、上帝以及老天爺 Ti

西瓜書 課後習題3.4 十折交叉和留一法,對率迴歸

import csv import numpy as np def readData(filename): """ :param filename:cvs資料檔案 :return: X1,y1,X2,y2,X3,y3 X: list with s

演算法競賽入門經典(第二版)習題3-4

#include<stdio.h> #include<string.h> char s[85]; int main() { while(scanf("%s",s)) { int len=strlen(s); for(int i=

浙大版《資料結構》習題3.4 最長連續遞增子序列(20 分)

給定一個順序儲存的線性表,請設計一個演算法查詢該線性表中最長的連續遞增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最長的遞增子序列為(3,4,6,8)。 輸入格式: 輸入第1行給出正整數n(≤105)n(≤105);第2行給出n個整數,其間