java題解leetcode242.有效的字母異位詞
leetcode242.有效的字母異位詞
給定兩個(gè)字符串 s 和 t ,編寫(xiě)一個(gè)函數(shù)來(lái)判斷 t 是否是 s 的字母異位詞。
注意:若 s 和 t 中每個(gè)字符出現(xiàn)的次數(shù)都相同,則稱(chēng) s 和 t 互為字母異位詞。
解決問(wèn)題
一開(kāi)始我想到的是拆分成數(shù)組再排序,最后比較就行,但是這樣時(shí)間很長(zhǎng),要將近40ms
示例
char[] s1=s.toCharArray(); List<Character> x=new ArrayList<>(); for (char c : s1) { x.add(c); } x.sort((o1,o2)->o1.charValue()-o2.charValue()); char[] s2=t.toCharArray(); List<Character> y=new ArrayList<>(); for (char c : s2) { y.add(c); } y.sort((o1,o2)->o1.charValue()-o2.charValue()); if(x.size()!=y.size()){ return false; } for (int i = 0; i < x.size(); i++) { if(x.get(i)!=y.get(i)){ return false; } } return true;
參考代碼將該問(wèn)題轉(zhuǎn)換為比較字符串中字母出現(xiàn)次數(shù)問(wèn)題,并只需要在掃描s時(shí)在26位數(shù)組中記錄出現(xiàn)次數(shù),然后掃描t時(shí)減去相應(yīng)的次數(shù),最后檢測(cè)數(shù)組是否全為零就可以完美解決,只用了3ms
public boolean isAnagram(String s, String t) { int[] hash=new int[26]; for (int i = 0; i < s.length(); i++) { hash[s.charAt(i)-'a']++; } for (int i = 0; i < t.length(); i++) { hash[t.charAt(i)-'a']--; } for (int i = 0; i < 26; i++) { if(hash[i]!=0){ return false; } } return true; }
以上就是java題解leetcode242.有效的字母異位詞的詳細(xì)內(nèi)容,更多關(guān)于java題解有效字母異位詞的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類(lèi)擴(kuò)展,socket
這篇文章主要介紹了Kotlin基礎(chǔ)教程之dataclass,objectclass,use函數(shù),類(lèi)擴(kuò)展,socket的相關(guān)資料,需要的朋友可以參考下2017-05-05java實(shí)現(xiàn)簡(jiǎn)單快遞系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)單快遞系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03SpringBoot項(xiàng)目啟動(dòng)后再請(qǐng)求遠(yuǎn)程接口的解決方式
Spring?Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化Spring應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等,這篇文章主要介紹了SpringBoot項(xiàng)目啟動(dòng)后再請(qǐng)求遠(yuǎn)程接口的實(shí)現(xiàn)方式?,需要的朋友可以參考下2023-02-02java 中枚舉類(lèi)enum的values()方法的詳解
這篇文章主要介紹了java 中枚舉類(lèi)enum的values()方法的詳解的相關(guān)資料,希望通過(guò)本文大家能夠掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09java 正則表達(dá)式匹配Matcher類(lèi)的使用
Matcher類(lèi)在Java中用于正則表達(dá)式匹配,本文主要介紹了java 正則表達(dá)式匹配Matcher類(lèi)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Mybatis詳細(xì)對(duì)比一級(jí)緩存與二級(jí)緩存
MyBatis 包含一個(gè)非常強(qiáng)大的查詢(xún)緩存特性,它可以非常方便地配置和定制,緩存可以極大的提升查詢(xún)效率。MyBatis中默認(rèn)定義了兩級(jí)緩存,分別是一級(jí)緩存和二級(jí)緩存2022-10-10Windows下gradle的安裝與配置的超詳細(xì)教程
這篇文章主要介紹了Windows下gradle的安裝與配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09詳解spring boot 使用application.properties 進(jìn)行外部配置
這篇文章主要介紹了詳解spring boot 使用application.properties 進(jìn)行外部配置,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03