用Javascript檢查一個字符串是否是一個等值線 - 邏輯審查

亞歷克斯病人

我嘗試解決字符串是否為等值線圖如下:
我不知道為什麼我的代碼不起作用。請有人能幫忙解釋一下原因嗎?
等值線圖沒有連續或不連續的重複字母。
我曾嘗試: 1- 將字符串轉換為小寫並使其成為數組。2- 如果字符串為空,則創建一個 if 檢查以返回 true。3- 通過數組運行 for 循環並比較每個字母的 firstIndex 和 lastIndex。如果第一個實例和最後一個實例不相同,則字符串不能是等值線圖,因此返回 false。??

    function isIsogram(str){
      str = str.toLowerCase();
      let text = str.split("");
      if (text.length === 0) { 
        return true;
      }
      for (let i = 0; i < text.length; i++) {
        if ( text.indexOf(text[i]) !== text.lastIndexOf(text[i]) ){
          return false;
        } else {
          return true;
        }
      } 
    }
特里·倫諾克斯

一個簡單的更改應該可以解決問題。您現有的函數只考慮第一個字符。然後這將跳過字符串中的任何重複字符,例如,它為 'abb' 返回 true,這當然是不正確的。

最好繼續到循環結束,只有在我們確定沒有重複字符時才返回 true。

function isIsogram(str){
    str = str.toLowerCase();
    let text = str.split("");
    if (text.length === 0) { 
        return true;
    }
    for (let i = 0; i < text.length; i++) {
        if (text.indexOf(text[i]) !== text.lastIndexOf(text[i]) ){
            return false;
        }
    }
    return true;
}

const testInputs = ['abb','aab','aba','abc','abcdz'];
testInputs.forEach(input => console.log(`isIsogram(${input}): ${isIsogram(input)}`));

這是另一個實現,使用 aSet()來計算唯一字符。如果字符串沒有重複字符,則設置大小給出的唯一字符數應與輸入字符串長度相同。

function isIsogram(str){
    return new Set(str).size === str.length;
}

const testInputs = ['abb','aab','aba','abc', 'abcdz'];
testInputs.forEach(input => console.log(`isIsogram(${input}): ${isIsogram(input)}`));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

邏輯端口使mysql查詢太慢

檢查一個字符串的任何部分是否與其他字符串的任何部分匹配

pandas loc 檢查值是否包含多個單詞或字符串中的任何一個

Firebase Firestore:使用邏輯 OR 和分頁查詢

過濾我需要檢查多個屬性以檢查它們是否包含數組中的字符串之一的對象

檢查javascript對象的子對像是否包含某個字符串

是否可以檢查 Azure Cosmos DB 中是否存在邏輯分區?

字符串不落在另一個字符串中間的邏輯

檢查參數 $1 是否為三個字符的全大寫字符串

檢查兩個字符串是否大小寫相同

JS中如何檢查兩個字符串並確定每個字符串中是否有任何字母放在同一字母行中?

查詢中的日期比較:正確的邏輯但錯誤的結果

如何在媒體查詢中使用邏輯表達式?

JQ 檢查數組是否包含一個元素

檢查第一個參數是否是提及

MongoDB $type 檢查一個字段

檢查對像是否存在於javascript中的另一個對象樹中

如何檢查一個 ParameterizedType 是否代表另一個 ParameterizedType 的子類型?

檢查一個列表元素中的元素是否存在於另一個列表中

如何檢查一個數組是否包含另一個數組的任何元素

檢查每個顏色字段是否具有顏色值(格式字符串“#FFFFFF”)

如何拆分輸入並檢查另一側是否以字符串結尾

檢查多個列表的最後一個元素

正則表達式模式如何寫入以檢查 Java 中的至少一個字符串和數字?

如何檢查一個元素是否有兩個特定的子元素?

如何檢查 tkinter 中的條目是否有一個或多個零

檢查多個變量 angular/ts 中的一個值是否為假

Twilio + NodeJS 如何有效檢查兩個用戶是否一起參與了對話

在檢查它是否 > 0 之前刪除數字的第一個字符,結合間接函數