3 有序佇列

2021-09-12 16:24:50 字數 1010 閱讀 3332

題目描述:

給出了乙個由小寫字母組成的字串 s。然後,我們可以進行任意次數的移動。

在每次移動中,我們選擇前 k 個字母中的乙個(從左側開始),將其從原位置移除,並放置在字串的末尾。

返回我們在任意次數的移動之後可以擁有的按字典順序排列的最小字串。

示例 1:

輸入:s = 「cba」, k = 1

輸出:「acb」

解釋:在第一步中,我們將第乙個字元(「c」)移動到最後,獲得字串 「bac」。

在第二步中,我們將第乙個字元(「b」)移動到最後,獲得最終結果 「acb」。

示例 2:

輸入:s = 「baaca」, k = 3

輸出:「aaabc」

解釋:在第一步中,我們將第乙個字元(「b」)移動到最後,獲得字串 「aacab」。

在第二步中,我們將第三個字元(「c」)移動到最後,獲得最終結果 「aaabc」。

1 <= k <= s.length <= 1000

s 只由小寫字母組成。

思路:當k=1時,我們需要迴圈len次(len時s的長度),從而得到最靠前的字典序

當k大於1時,我們可以得出乙個結論:此時最靠前的字典序就是排序後的字典序

**:

class solution 

string result = s;

if(k == 1)

s = new string(s);

}return result;

}else

}public void change(char tem, char first)

tem[tem.length - 1] = first;

}}

其中呼叫char tem = s.tochararray();

arrays.sort(tem);

即可排名靠前的**

class solution 

return t;

}}

有限有序佇列

class limitsortedqueue public limitsortedqueue int maxqueuelenght this public void inqueue t item if queue.count 0 int idx 0 t currentitem null doif c...

python有序佇列 Python 佇列

所謂佇列 佇列是有序集合,新增操作發生在 尾部 移除操作則發生在 頭部 新元素從尾部進入 佇列,然後一直向前移動到頭部,直到成為下乙個被移除的元素。新新增的元素必須在佇列的尾部等待,在佇列中時間長的元素則排在前面。這種排序 原則被稱作 fifo first in first out 即先進先出,也稱...

雙端佇列 有序佇列

一開始給出了乙個由小寫字母組成的字串 s。我們規定每次移動中,選擇最左側的字母,將其從原位置移除,並加到字串的末尾。這樣的移動可以執行任意多次返回我們移動之後可以擁有的最小字串 注 在python3中,字串的大小可用不等號比較 from pythonds.basic.deque import deq...