我們會在 JavaScript 中找到按字典順序排列的最小字串旋轉。該方法涉及將原始字串與其自身連接,然後使用內建的「排序」函數按升序對連接的字串進行排序。最後,我們將傳回已排序的連接字串的最小子字串,其長度與原始字串相同。這將是按字典順序排列的最小字串旋轉。
我們將透過使用字串操作技術和 JavaScript 中可用的內建函數來實現此邏輯。我們實現的結果將是一個表示輸入字串按字典順序最小旋轉的字串。這對於以有效的方式比較和排序字串非常有用。
未來,我們將繼續改進演算法,使其更快、更有效率地找到字典順序最小的字串旋轉。
這裡解釋如何在 5 行中找到按字典順序排列的最小字串旋轉 -
將原始字串與其自身連接起來,以確保考慮所有可能的旋轉。
找到第一個不等於下一個字符的字符,該字符將作為最小旋轉的起點。
如果沒有找到這樣的字符,則傳回原始字串,因為它已經是最小旋轉。
傳回連接字串中從找到的字元開始到字串末尾的子字串作為最小旋轉。
產生的子字串將是按字典順序排列的最小字串旋轉。
透過將原始字串與其自身連接並找到以原始字串的第一個字元開頭的最小子字串,可以找到按字典順序排列的最小字串旋轉。
這是一個在 JavaScript 中實作的範例 -
function findLexicographicallyMinimumStringRotation(str) { let strDouble = str + str; let len = str.length; let minRotation = strDouble.substring(0, len); for (let i = 1; i < len; i++) { let currRotation = strDouble.substring(i, i + len); if (currRotation < minRotation) { minRotation = currRotation; } } return minRotation; } const str = 'eadbc'; console.log(findLexicographicallyMinimumStringRotation(str));
首先,我們將原始字串與其自身連接起來得到 strDouble。
我們也定義了一個變數len來儲存原始字串的長度。
然後我們用strDouble 中長度為len 的第一個子字串初始化minRotation,即strDouble >.子字串(0, len)。這是我們尋找字典順序最小字串旋轉的起點。
然後,我們使用 for 迴圈從第二個字元開始迭代 strDouble 中長度為 len 的所有可能子字串。
對於每次迭代,我們透過從strDouble 中獲取長度為len 的子字串來找到當前旋轉currRotation ,從當前位置 i.
#如果currRotation小於minRotation,我們將使用目前旋轉更新minRotation。
最後,在 for 迴圈結束後,我們傳回 minRotation 的值,這是一個以字典順序最小的字串旋轉。
以上是JavaScript 程式尋找字典順序最小字串旋轉的詳細內容。更多資訊請關注PHP中文網其他相關文章!