中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

做電影網(wǎng)站用什么主機好寧波關(guān)鍵詞優(yōu)化排名工具

做電影網(wǎng)站用什么主機好,寧波關(guān)鍵詞優(yōu)化排名工具,做網(wǎng)站教程 第一課,php網(wǎng)站開發(fā)集合教程給定一個由字符串組成的數(shù)組strs,必須把所有的字符串拼接起來,返回所有可能的拼接結(jié)果中字典序最小的結(jié)果 貪心寫法 首先注意的一點是:如果兩個字符串的長度相同,“abc”,“abd”,肯定是“abc”的字典序最…

給定一個由字符串組成的數(shù)組strs,必須把所有的字符串拼接起來,返回所有可能的拼接結(jié)果中字典序最小的結(jié)果

貪心寫法

首先注意的一點是:如果兩個字符串的長度相同,“abc”,“abd”,肯定是“abc”的字典序最小,放在前面。拼接的結(jié)果是abcabd也是最小的,

當(dāng)兩個字符串的長度不相同時“b”,“bac”,計算機進行字典序比較的時候,會將“b”后面補上最小的ASCII,即變成 “b00” 與 “bac” 進行比較。此時“b”小放前面,此時拼接的結(jié)果是:bbac,但是bbac > bacb所以這樣拼接有問題。所以需要寫一個我們自己的比較器。

思路:
1:將字符串?dāng)?shù)組進行排序,排序的標(biāo)準(zhǔn)就是我們自己寫的比較器(兩個字符串進行拼接,拼接結(jié)果小的字符串放前面);

注意這個地方要有傳遞性才可以,比如說:( 1<10 && 10 < 20 ) --> (1 < 20) , 同理: (ab < abc && abc < abcg) --> ab < abcg

只有具有傳遞性,這個數(shù)組的排序才是有效的。至于傳遞性的證明,不需要自己證,寫一個對數(shù)器,用實驗的方法來證明自己的假設(shè)。

2:遍歷整個數(shù)組,將數(shù)組中的結(jié)果拼接起來。

3:返回這個結(jié)果。

//貪心寫法public static String lowestString2(String[] strs) {if (strs == null || strs.length == 0) {return "";}Arrays.sort(strs, new MyComparator());String ans = strs[0];for (int i = 1; i < strs.length; i++) {ans = ans.concat(strs[i]);}return ans;}public static class MyComparator implements Comparator<String> {@Overridepublic int compare(String o1, String o2) {// compareTo方法是用來比較兩個字符串的字典順序。-----------------------------**--// 如果返回值小于0,則表示(o1 + o2)小于(o2 + o1),// 如果返回值等于0,則表示兩者相等,// 如果返回值大于0,則表示(o1 + o2)大于(o2 + o1)。return (o1 + o2).compareTo(o2 + o1);}}

暴力寫法

思路:總思路就是:給我一個字符串?dāng)?shù)組,將所有可能的情況給串起來,然后返回字典序最小的拼接情況。

我們需要一個容器來存放所有可能的結(jié)果:這個容器可以用TressSet,因為對于字符串他會自動的按字典序進行由小到大的排序

如何求得所有的可能情況

		for (int index = 0; index < strs.length; index++) {String first = strs[index];//每一個字符串作為頭的情況。String[] nexts = removeIndex(strs, index); //除去頭以后剩下的字符串組成的數(shù)組。TreeSet<String> next = process(nexts); //通過遞歸調(diào)用,返回的是一個容器,里面存褚著所有的除去頭以外的字符串。for (String cur : next) { // 將頭節(jié)點都給安上。ans.add(first.concat(cur));}}

在這里插入圖片描述

//暴力寫法// lowestString1 : 返回所有可能的拼接結(jié)果中字典序最小的結(jié)果public static String lowestString1(String[] strs) {if (strs == null || strs.length == 0) {return "";}TreeSet<String> set = process(strs);return set == null || set.size() == 0 ? "" : set.first();}// process : strs中所有字符串的可能情況全排列,返回所有可能情況。public static TreeSet<String> process(String[] strs) {TreeSet<String> ans = new TreeSet<>();if (strs == null || strs.length == 0) {ans.add("");return ans;}for (int index = 0; index < strs.length; index++) {String first = strs[index];String[] nexts = removeIndex(strs, index);TreeSet<String> next = process(nexts);for (String cur : next) {ans.add(first.concat(cur));}}return ans;}public static String[] removeIndex(String[] strs, int index) {String[] ans = new String[strs.length - 1];int ansIndex = 0;for (int i = 0; i < strs.length; i++) {if (i != index) {ans[ansIndex++] = strs[i];}}return ans;}

比較器

做貪心的題目比較器是很重要的,因為為了避免證明,我們需要通過實驗的方法來驗證我們的答案。

// -------------------------------- for test -------------------------------public static void main(String[] args) {int testTime = 10000;int strArrayLength = 5;int strLength = 5;System.out.println("test begin");for (int i = 0; i < testTime; i++) {String[] arr1 = generateRandomStringArray(strArrayLength, strLength);String[] arr2 = copyStringArray(arr1);if (!lowestString1(arr1).equals(lowestString2(arr2))) {System.out.println(arr1);System.out.println(arr2);System.out.println("ooops");}}System.out.println("finish");}public static String[] generateRandomStringArray(int strArrayLength, int strLength) {String[] string = new String[(int) (Math.random() * strArrayLength + 1)];for (int i = 0; i < string.length; i++) {char[] c = new char[(int) (Math.random() * strLength + 1)];int a = (int) (Math.random() * 26); //[0,25]for (int j = 0; j < c.length; j++) {c[j] = (Math.random() < 0.5 ? (char) (65 + a) : (char) (95 + a));}string[i] = c.toString();}return string;}public static String[] copyStringArray(String[] ans) {String[] ret = new String[ans.length];for (int i = 0; i < ans.length; i++) {ret[i] = ans[i];}return ret;}
}
http://www.risenshineclean.com/news/36016.html

相關(guān)文章:

  • 怎樣編輯網(wǎng)頁網(wǎng)站關(guān)鍵詞排名優(yōu)化
  • wordpress建站教程視頻百度指數(shù)需求圖譜
  • 類似于眾人幫的做任務(wù)賺傭金網(wǎng)站seo案例分析及解析
  • 給你一個網(wǎng)站你怎么做的嗎網(wǎng)盤網(wǎng)頁版
  • 深圳建設(shè)網(wǎng)站制作公司訊展網(wǎng)站優(yōu)化推廣
  • 網(wǎng)站制作的基本步驟診斷網(wǎng)站seo現(xiàn)狀的方法
  • 蕪湖建設(shè)工程質(zhì)量監(jiān)督站網(wǎng)站福建seo快速排名優(yōu)化
  • 網(wǎng)站建設(shè)用啥技術(shù)新聞頭條 今天
  • 怎么下載wordpress內(nèi)置的主題廣州seo公司如何
  • 源代碼如何做網(wǎng)站百度移動端點贊排名軟件
  • ps6做網(wǎng)站點哪里保存seo最新
  • 成都三合一網(wǎng)站建設(shè)推廣新產(chǎn)品最好的方法
  • 武漢哪里做網(wǎng)站好找個免費的網(wǎng)站
  • 提供網(wǎng)站制作百度風(fēng)云排行榜官網(wǎng)
  • 網(wǎng)站建設(shè)公司該怎么銷售微信推廣方法
  • 上海企業(yè)招聘信息發(fā)布平臺長沙seo優(yōu)化推薦
  • 網(wǎng)站建設(shè)原因分析win7系統(tǒng)優(yōu)化軟件
  • 中國新聞社招聘2023年褲子seo關(guān)鍵詞
  • 中國最近軍事新聞視頻桂林網(wǎng)站優(yōu)化
  • 網(wǎng)站推廣解釋中國有幾個搜索引擎
  • 網(wǎng)站廣告輪播代碼運營是做什么的
  • 邀請注冊推廣賺錢seo深圳優(yōu)化
  • 如何在記事本中做網(wǎng)站鏈接長沙自動seo
  • 黃石建設(shè)信息網(wǎng)站國內(nèi)網(wǎng)絡(luò)銷售平臺有哪些
  • 公司網(wǎng)站建設(shè)開發(fā)濟南興田德潤優(yōu)惠嗎推廣平臺排行榜app
  • 行業(yè)網(wǎng)站建設(shè)費用百度seo推廣軟件
  • 公司 做網(wǎng)站推廣信息發(fā)布平臺
  • 做網(wǎng)站是什么專業(yè)什么工作百度后臺推廣登錄
  • 做pc端網(wǎng)站要成本么廣告推廣軟件
  • wordpress loading優(yōu)化