首頁  >  文章  >  後端開發  >  數組中的第 K 個不同字串

數組中的第 K 個不同字串

王林
王林原創
2024-08-06 09:25:30984瀏覽

Kth Distinct String in an Array

2053。數組中的第 K 個不同字串

簡單

不同字串 是在陣列中只出現一次 的字串。

給定一個字串陣列 arr 和一個整數 k,傳回 arr 中存在的第 k 不同字串。如果少於 k 個不同的字串,則傳回一個空字串 "".

注意字串按照它們在數組中出現的順序進行考慮。

範例1:

  • 輸入: arr = ["d","b","c","b","c","a"], k = 2
  • 輸出:「a」
  • 說明: arr 中唯一不同的字串是「d」和「a」。 「d」出現 1st,因此它是 1st 不同的字串。 「a」出現在第 2nd 處,因此它是第 2nd 個不同的字串。 由於 k == 2,因此返回“a”。

範例2:

  • 輸入: arr = ["aaa","aa","a"], k = 1
  • 輸出:「aaa」
  • 解釋: arr 中的所有字串都是不同的,因此傳回第一個字串「aaa」。

範例 3:

  • 輸入: arr = ["a","b","a"], k = 3
  • 輸出: ""
  • 解釋:唯一不同的字串是「b」。由於不同的字串少於 3 個,因此我們傳回一個空字串「」。

約束:

  • 1
  • 1
  • arr[i] 由小寫英文字母組成。

提示:

  1. 嘗試「映射」字串以檢查它們是否唯一。

解:

要解決這個問題,我們可以按照以下步驟操作:

  1. 建立頻率圖(關聯數組)來計算給定數組中每個字串的出現次數。
  2. 迭代數組以按照出現的順序收集不同的字串(僅出現一次的字串)。
  3. 檢查不同字串的數量是否至少為 k。如果是,則傳回第 k 個不同的字串;否則,傳回空字串。

讓我們用 PHP 實作這個解:2053。數組中的第 K 個不同字串

<?php
// Test cases
$arr1 = array("d", "b", "c", "b", "c", "a");
$k1 = 2;
echo kthDistinct($arr1, $k1) . "\n"; // Output: "a"

$arr2 = array("aaa", "aa", "a");
$k2 = 1;
echo kthDistinct($arr2, $k2) . "\n"; // Output: "aaa"

$arr3 = array("a", "b", "a");
$k3 = 3;
echo kthDistinct($arr3, $k3) . "\n"; // Output: ""

?>

解釋:

  1. 頻率圖:我們先建立一個頻率圖來統計每個字串在陣列中出現的次數。
    • [“d”,“b”,“c”,“b”,“c”,“a”] 結果為[“d” => 1、“b”=> 2、“c”=> 2、“一”=> 1]
  2. 收集不同字串:我們再次迭代數組,收集頻率圖中計數為 1 的字串。
    • 對於 ["d", "b", "c", "b", "c", "a"],我們得到 ["d", "a"]。
  3. 傳回結果:我們檢查是否至少有 k 個不同的字串,如果存在則傳回第 k 個,否則傳回空字串。

提供的程式碼在給定的限制內有效地處理問題。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

以上是數組中的第 K 個不同字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn