摘要:問題及解決問題描述輸入一個字符串,字符串長度大于任意刪除字符串的兩個字符,得到其子字符串輸出滿足條件的不相同的子字符串的個數(shù)。
問題及解決
問題描述:
輸入一個字符串,字符串長度大于3;
任意刪除字符串的兩個字符,得到其子字符串;
輸出滿足條件的不相同的子字符串的個數(shù)。
JavaScript實現(xiàn):`
function select(str){ let arr = str.split(""); let iAar = []; let n = 0; arr.map(function(e,i){ if(e !== arr[i-1]){ // 找到字符串中發(fā)生變化的地方,并儲存其序列號 iAar.push(i); } }) for(let j=0; ;j++){ if(j === iAar.length-1){ let result = j===arr.length-1 ? n : n+1; // 如果結(jié)尾是一個不重復(fù)的字符,不滿足條件 return result; } else if (iAar[j] === iAar[j+1]-1){ n += iAar.length-j-1; } else { n += iAar.length-j; } } }我的思路
我認(rèn)為關(guān)鍵在于找到去重的方法。我是這樣想的:如果選擇刪除字符串的第一個字符,那么后面出現(xiàn)一段連續(xù)重復(fù)的片段,則在這個片段中選擇刪除任意一個字符得到的子字符串都是相同的,否則會得到不相同的子字符串。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90883.html
摘要:今天跟大家分享多種排序算法里使用較廣泛,速度快的排序算法快速排序法平均時間復(fù)雜度為。快速排序法的原理快速排序是一種劃分交換排序,它采用分治的策略,通常稱其為分治法。 HTML5學(xué)堂-碼匠:前幾期算法之旅跟大家分享了冒泡排序法和選擇排序法,它們都屬于時間復(fù)雜度為O(n^2)的慢排序。今天跟大家分享多種排序算法里使用較廣泛,速度快的排序算法—— 快速排序法 [ 平均時間復(fù)雜度為O (n l...
摘要:題目給定一個字符串,計算具有相同數(shù)量和的非空連續(xù)子字符串的數(shù)量,并且這些子字符串中的所有和所有都是組合在一起的。示例輸入輸出解釋有個子串具有相同數(shù)量的連續(xù)和,,,,和。請注意,一些重復(fù)出現(xiàn)的子串要計算它們出現(xiàn)的次數(shù)。 題目 給定一個字符串?s,計算具有相同數(shù)量0和1的非空(連續(xù))子字符串的數(shù)量,并且這些子字符串中的所有0和所有1都是組合在一起的。 重復(fù)出現(xiàn)的子串要計算它們出現(xiàn)的次數(shù)。 ...
摘要:最近在梳理的基礎(chǔ),首先從數(shù)組和字符串開始。如果超出有效范圍與字符串長度減一的索引值返回空字符串返回對象內(nèi)第一次出現(xiàn)子字符串位置。將字符串以參數(shù)分割為數(shù)組方法返回一個字符串,該字符串中的字母被轉(zhuǎn)換成小寫。 最近在梳理js的基礎(chǔ),首先從數(shù)組和字符串開始。 string 常用方法: 1.substring(start開始位置的索引,end結(jié)束位置索引) 截取的位置不包含結(jié)束位置的字符,只寫一...
閱讀 1538·2021-11-04 16:10
閱讀 2774·2021-09-30 09:48
閱讀 2839·2019-08-29 11:31
閱讀 1578·2019-08-28 18:22
閱讀 3225·2019-08-26 13:44
閱讀 1319·2019-08-26 13:42
閱讀 2845·2019-08-26 10:20
閱讀 754·2019-08-23 17:00