日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java-Anagram方法

發(fā)布時間:2023/12/20 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java-Anagram方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)于Java中Anagram方法的寫法
Anagram是指字符串中出現(xiàn)的字符
(在本題里不僅是小寫字母,還包括大寫字母和其他符號)
這個任務(wù)要求不能使用除String外的其他來自Java.API的類。

在網(wǎng)上看到了一般有這么幾種寫法:
1.運用Array類 (題目限制不能使用)
2.創(chuàng)建hash表 (題目限制不能使用)
3.確定int范圍后比較大小 (不符合字符的要求)

所以需要自己設(shè)計新的方法:
題目對時間復(fù)雜度O并沒有要求。

public static boolean isAnagram(String word1, String word2) {//創(chuàng)建word1,word2的兩個對應(yīng)char數(shù)組char[] array1 = word1.toCharArray();char[] array2 = word2.toCharArray();//用于統(tǒng)計,后面會再次提到int nums = 0;//判斷word1與word2的長度是否一致if (word1.length() != word2.length()) {return false;} else {for (int i = 0; i < word1.length(); i++) {int counters1 = 0; //word1的計數(shù)器int counters2 = 0; //word2的計數(shù)器for (int j = 0; j < word1.length(); j++) {//包括自身,array[i]元素出現(xiàn)的總次數(shù)if (array1[i] == array1[j]) {counters1++;}}for (int k = 0; k < word2.length(); k++) {//array2中與array[i]元素相同的元素個數(shù)if (array2[k] == array1[i]) {counters2++;}}/*若兩數(shù)組中對于array1[i]的兩計數(shù)器值相等,說明對于在word1,word2中array1[i]元素出現(xiàn)次數(shù)相同此時記錄word1與word2相同字符相同出現(xiàn)次數(shù)+1 (nums++)注意:array1[i]=array[p](p>i) 是有可能存在的,這里相同字符重復(fù)出現(xiàn)是必要的*/if (counters1 == counters2) {nums++;}} // 每一輪counter1和counter2都會被重新賦值/*若nums等于word1長度,則說明word1上字符x在word1都存在counter1個,在word2上存在counter2個,此時counter1 = counter2*/if (nums != word1.length()) {return false;}return true;}}

請注意:此方法并不是最優(yōu)方法,如果有錯誤請指出。

總結(jié)

以上是生活随笔為你收集整理的Java-Anagram方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。