摘要:題目描述循環(huán)單詞一個(gè)單詞循環(huán)右移得到另一個(gè)單詞。輸出循環(huán)單詞種數(shù)。注意如果單詞沒(méi)有和任何單詞構(gòu)成循環(huán)單詞,那么也為一種循環(huán)單詞,。
題目描述
循環(huán)單詞:一個(gè)單詞循環(huán)右移得到另一個(gè)單詞。 例如:picture和turepic屬于一種循環(huán)單詞。 給出n個(gè)單詞,統(tǒng)計(jì)有多少種循環(huán)單詞。輸入
輸入n+1行 第一行為單詞個(gè)數(shù)n(n:[1,50]) 接下來(lái)n行,每一行一個(gè)單詞,小寫(xiě)構(gòu)成。輸出
循環(huán)單詞種數(shù)。思路
從第一個(gè)單詞開(kāi)始,遍歷每個(gè)單詞。
每個(gè)沒(méi)有被統(tǒng)計(jì)過(guò)的單詞i都和后面所有沒(méi)有統(tǒng)計(jì)過(guò)的單詞j比較,是否構(gòu)成循環(huán)單詞。
如果構(gòu)成循環(huán)單詞且該循環(huán)單詞沒(méi)有被統(tǒng)計(jì)過(guò),統(tǒng)計(jì)數(shù)cont+1并且標(biāo)記j為統(tǒng)計(jì)過(guò)use[j]=true;
如果構(gòu)成循環(huán)單詞但是沒(méi)被統(tǒng)計(jì)過(guò),則標(biāo)記j為統(tǒng)計(jì)過(guò)use[j]=true,不再統(tǒng)計(jì);
如果不夠循環(huán)單詞,則不統(tǒng)計(jì)也不標(biāo)記,不做任何操作。
注意:如果單詞i沒(méi)有和任何單詞構(gòu)成循環(huán)單詞,那么也為一種循環(huán)單詞,count+1。
tips:字符串循環(huán)右移使用substring方法
use[i]記錄第i個(gè)單詞是否被統(tǒng)計(jì)過(guò)
count用來(lái)統(tǒng)計(jì)循環(huán)單詞個(gè)數(shù)
flag表示目前正在訪問(wèn)的這個(gè)循環(huán)單詞是否被統(tǒng)計(jì)過(guò),如果被統(tǒng)計(jì)過(guò)就不再統(tǒng)計(jì)
while(line=readline()){ let n = parseInt(line); let strArr = new Array(); let use = []; for(let i = 0; i < n; i++){ strArr[i] = new Array(readline()); use[i] = false; } let count = 0; let flag = false; for(let i = 0; i < n; i++){ if(!use[i]){ //單詞i沒(méi)有被統(tǒng)計(jì)過(guò) use[i] = true; //標(biāo)記單詞i被統(tǒng)計(jì)過(guò) flag = false; //目前該種循環(huán)單詞沒(méi)有被統(tǒng)計(jì)過(guò) for(let j = i+1; j < n; j++){ //和i單詞后面的每個(gè)沒(méi)有被統(tǒng)計(jì)過(guò)的 單詞比較 if(!use[j]){//只和沒(méi)有被統(tǒng)計(jì)過(guò)的單詞j比較 if(same(strArr[i],strArr[j])){//比較i和j是否為循環(huán)單詞 if(!flag){//如果這種循環(huán)單詞沒(méi)有統(tǒng)計(jì),則統(tǒng)計(jì)+1 count++; flag = true; } use[j] = true; } } } if(!flag){//單詞i這種循環(huán)單詞沒(méi)有被統(tǒng)計(jì)過(guò),不和任何單詞構(gòu)成循環(huán)單詞 count++; } } } print(count); } //判斷兩個(gè)單詞是否為循環(huán)單詞 function same(stra, strb){ //轉(zhuǎn)成字符串類(lèi)型,否則為對(duì)象object類(lèi)型,length=1 let str1 = new String(stra); let str2 = new String(strb); if(str1.length != str2.length){//長(zhǎng)度不一樣必然不能構(gòu)成循環(huán)單詞 return false; } for(let i = 0; i < str1.length; i++){ //循環(huán)右移,每次右移一位,比較兩個(gè)單詞是否相等 //字符串循環(huán)右移使用substring方法 let str = str1.substring(i)+ str1.substring(0,i); if(str == str2){ return true; } } return false; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/97168.html
摘要:中的算法附道面試常見(jiàn)算法題解決方法和思路關(guān)注每日一道面試題詳解面試過(guò)程通常從最初的電話(huà)面試開(kāi)始,然后是現(xiàn)場(chǎng)面試,檢查編程技能和文化契合度。值得記住的數(shù)組方法有和。一個(gè)好的解決方案是使用內(nèi)置的方法。 JavaScript中的算法(附10道面試常見(jiàn)算法題解決方法和思路) 關(guān)注github每日一道面試題詳解 Introduction 面試過(guò)程通常從最初的電話(huà)面試開(kāi)始,然后是現(xiàn)場(chǎng)面試,檢查編程...
摘要:基于概率論的分類(lèi)方法樸素貝葉斯概述貝葉斯分類(lèi)是一類(lèi)分類(lèi)算法的總稱(chēng),這類(lèi)算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱(chēng)為貝葉斯分類(lèi)。另外一種有效計(jì)算條件概率的方法稱(chēng)為貝葉斯準(zhǔn)則。可以在任意的分類(lèi)場(chǎng)景中使用樸素貝葉斯分類(lèi)器,不一定非要是文本。 基于概率論的分類(lèi)方法:樸素貝葉斯 1. 概述 貝葉斯分類(lèi)是一類(lèi)分類(lèi)算法的總稱(chēng),這類(lèi)算法均以貝葉斯定理為基礎(chǔ),故統(tǒng)稱(chēng)為貝葉斯分類(lèi)。本章首先介紹貝葉斯分類(lèi)算法的基礎(chǔ)—...
摘要:規(guī)則使用語(yǔ)言,讓函數(shù)獲取傳遞的參數(shù)并返回字符串中的最大單詞。忽略字符串中標(biāo)點(diǎn)符號(hào)并假設(shè)不會(huì)為空。測(cè)試用例思路通過(guò)過(guò)濾字符串,并把字符串根據(jù)空格符轉(zhuǎn)換成字符串?dāng)?shù)組通過(guò)循環(huán)把獲取字符串?dāng)?shù)組中的長(zhǎng)度最長(zhǎng)的字符串 雖然都是很簡(jiǎn)單的算法,每個(gè)都只需5分鐘左右,但寫(xiě)起來(lái)總會(huì)遇到不同的小問(wèn)題,希望大家能跟我一起每天進(jìn)步一點(diǎn)點(diǎn)。更多的小算法練習(xí),可以查看我的文章。 規(guī)則 Using the JavaS...
摘要:第題反轉(zhuǎn)字符串中的單詞給定一個(gè)字符串,你需要反轉(zhuǎn)字符串中每個(gè)單詞的字符順序,同時(shí)仍保留空格和單詞的初始順序。示例輸入輸出注意在字符串中,每個(gè)單詞由單個(gè)空格分隔,并且字符串中不會(huì)有任何額外的空格。 LeetCode 第557題 557. 反轉(zhuǎn)字符串中的單詞 III 給定一個(gè)字符串,你需要反轉(zhuǎn)字符串中每個(gè)單詞的字符順序,同時(shí)仍保留空格和單詞的初始順序。 示例 1: 輸入: Lets tak...
摘要:方法二提供者沐辰樓姬采用對(duì)象的方法取值優(yōu)化內(nèi)部循環(huán)性能確認(rèn)末尾字符算法挑戰(zhàn)檢查一個(gè)字符串是否以指定的字符串結(jié)尾。方法一方法二提供者沐辰樓姬使用數(shù)組對(duì)象方法,把數(shù)組的第一個(gè)元素從其中刪除,并返回第一個(gè)元素的值。 showImg(https://segmentfault.com/img/remote/1460000009702368?w=1269&h=541); 前言 偶然看到W3Csch...
閱讀 2134·2021-09-27 14:04
閱讀 1878·2019-08-30 15:55
閱讀 1704·2019-08-30 13:13
閱讀 1070·2019-08-30 13:07
閱讀 2749·2019-08-29 15:20
閱讀 3244·2019-08-29 12:42
閱讀 3341·2019-08-28 17:58
閱讀 3597·2019-08-28 17:56