第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查兩個單詞是否是字謎

如何檢查兩個單詞是否是字謎

SMILET 2019-09-02 08:58:25
我有一個程序,可以顯示兩個單詞是否是彼此的字謎。有一些例子不能正常工作,我會感激任何幫助,雖然如果它不是先進的那將是偉大的,因為我是一年級程序員?!靶iL”和“教室”是彼此的字謎,然而當我把“教室”改為“theclafsroom”時,它仍然說它們是字謎,我做錯了什么?import java.util.ArrayList;public class AnagramCheck{  public static void main(String args[])  {      String phrase1 = "tbeclassroom";      phrase1 = (phrase1.toLowerCase()).trim();      char[] phrase1Arr = phrase1.toCharArray();      String phrase2 = "schoolmaster";      phrase2 = (phrase2.toLowerCase()).trim();      ArrayList<Character> phrase2ArrList = convertStringToArraylist(phrase2);      if (phrase1.length() != phrase2.length())       {          System.out.print("There is no anagram present.");      }       else       {          boolean isFound = true;          for (int i=0; i<phrase1Arr.length; i++)          {                for(int j = 0; j < phrase2ArrList.size(); j++)               {                  if(phrase1Arr[i] == phrase2ArrList.get(j))                  {                      System.out.print("There is a common element.\n");                      isFound = ;                      phrase2ArrList.remove(j);                  }              }              if(isFound == false)              {                  System.out.print("There are no anagrams present.");                  return;              }           }          System.out.printf("%s is an anagram of %s", phrase1, phrase2);      }  }  public static ArrayList<Character> convertStringToArraylist(String str) {      ArrayList<Character> charList = new ArrayList<Character>();       for(int i = 0; i<str.length();i++){          charList.add(str.charAt(i));      }      return charList;  }}
查看完整描述

3 回答

?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超7個贊

最快的算法是將26個英文字符中的每一個映射到唯一的素數(shù)。然后計算字符串的乘積。根據(jù)算術(shù)的基本定理,當且僅當它們的產(chǎn)品相同時,2個字符串是字謎。


查看完整回答
反對 回復 2019-09-02
?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

如果兩個單詞包含相同數(shù)量的字符和相同的字符,則它們是彼此的字謎。您只需要按字典順序?qū)ψ址M行排序,并確定一個字符串中的所有字符是否與另一個字符串中的所有字符相同且順序相同。


這是一個代碼示例。Arrays在API中查看以了解這里發(fā)生了什么。


public boolean isAnagram(String firstWord, String secondWord) {

     char[] word1 = firstWord.replaceAll("[\\s]", "").toCharArray();

     char[] word2 = secondWord.replaceAll("[\\s]", "").toCharArray();

     Arrays.sort(word1);

     Arrays.sort(word2);

     return Arrays.equals(word1, word2);

}


查看完整回答
反對 回復 2019-09-02
?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

如果對任一陣列進行排序,則解決方案將變?yōu)镺(n log n)。但是如果你使用一個hashmap,那就是O(n)。經(jīng)過測試和工作。


char[] word1 = "test".toCharArray();

char[] word2 = "tes".toCharArray();


Map<Character, Integer> lettersInWord1 = new HashMap<Character, Integer>();


for (char c : word1) {

    int count = 1;

    if (lettersInWord1.containsKey(c)) {

        count = lettersInWord1.get(c) + 1;

    }

    lettersInWord1.put(c, count);

}


for (char c : word2) {

    int count = -1;

    if (lettersInWord1.containsKey(c)) {

        count = lettersInWord1.get(c) - 1;

    }

    lettersInWord1.put(c, count);

}


for (char c : lettersInWord1.keySet()) {

    if (lettersInWord1.get(c) != 0) {

        return false;

    }

}


return true;


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關(guān)注
  • 877 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號