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