每日程式設計 20170309

2022-08-16 18:18:17 字數 1502 閱讀 1837

題目:如果乙個單詞通過迴圈右移獲得的單詞,我們稱這些單詞都為一種迴圈單詞。 例如:picture 和 turepic 就是屬於同一種迴圈單詞。 現在給出n個單詞,需要統計這個n個單詞中有多少種迴圈單詞。

輸入描述:

輸入包括n+1行:

第一行為單詞個數n(1 ≤ n ≤ 50)

接下來的n行,每行乙個單詞word[i],長度length(1 ≤ length ≤ 50)。由小寫字母構成

輸出描述:

輸出迴圈單詞的種數

輸入例子:

5picture

turepic

icturep

word

ordw

輸出例子:

2解答:

1 #include 2 #include 

3 #include 4

using

namespace

std;

5int

main() ;  //count為答案,check為標記陣列,表示對應位置的string已經被操作過。

8string sinput[50

];9 cin >>number;

10for (auto i = 0; i < number; i++)

1114

for (auto i = 0; i < number; i++)

1520

string scompare1 = sinput[i] +sinput[i];  //將未標記的string加長一倍

21 count++;  //未被標記的新string可以將答案加1

22checked[i] = 1

;  //該string位置標記

23for (auto j = i+1; j < number; j++)  //從加倍的string向後比較

2429}30

}31 cout << count << "";

32 }

第二版

1 #include 2 #include 

3 #include 4

using

namespace

std;

5int

main() ;

8string sinput[50

];9 cin >>number;

10for (auto i = 0; i < number; i++)

1114

for (auto i = 0; i < number; i++)

1520

string scompare1 = sinput[i] +sinput[i];

21 count++;

22checked[i] = 1;23

for (auto j = i + 1; j < number; j++)

2433}34

}35 cout << count << "";

36 }

每日程式設計 (三十)

題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...

每日程式設計 31

題目描述 有n個房間,現在i號房間裡的人需要被重新分配,分配的規則是這樣的 先讓i號房間裡的人全都出來,接下來按照 i 1,i 2,i 3,的順序依此往這些房間裡放乙個人,n號房間的的下乙個房間是1號房間,直到所有的人都被重新分配。現在告訴你分配完後每個房間的人數以及最後乙個人被分配的房間號x,你需...

每日程式設計(36)

題目描述 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 ...