<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ?LeetCode刷題實(shí)戰(zhàn)316:去除重復(fù)字母

          共 3405字,需瀏覽 7分鐘

           ·

          2021-07-09 02:42

          算法的重要性,我就不多說了吧,想去大廠,就必須要經(jīng)過基礎(chǔ)知識和業(yè)務(wù)邏輯面試+算法面試。所以,為了提高大家的算法能力,這個(gè)公眾號后續(xù)每天帶大家做一道算法題,題目就從LeetCode上面選 !

          今天和大家聊的問題叫做 去除重復(fù)字母,我們先來看題面:
          https://leetcode-cn.com/problems/remove-duplicate-letters/

          Given a string s, remove duplicate letters so that every letter appears once and only once. You must make sure your result is the smallest in lexicographical order among all possible results.

          給你一個(gè)字符串 s ,請你去除字符串中重復(fù)的字母,使得每個(gè)字母只出現(xiàn)一次。需保證 返回結(jié)果的字典序最?。ㄒ蟛荒艽騺y其他字符的相對位置)。


          示例


          示例 1

          輸入:s = "bcabc"
          輸出:"abc"

          示例 2

          輸入:s = "cbacdcbc"
          輸出:"acdb"


          解題


           * 算法思想
           * 當(dāng)字典序最小時(shí),即12341 12351 主要看4,5的位置
           * 用棧存儲,當(dāng)棧空時(shí)直接入棧
           * 棧不為空時(shí),
           * 若棧中包含當(dāng)前要入棧的元素直接跳到下一次循環(huán)。(結(jié)果字符串每個(gè)字符只含有一次)
           * 若當(dāng)前要入棧的字母比棧頂字母大時(shí),考慮是否棧頂元素出棧
           * 若棧頂元素在剩余字符串中仍然存在,那么就可以出棧,出棧后繼續(xù)判斷新的棧頂元素是否出棧。


          public class RemoveDuplicateLetters {

              public static String removeDuplicateLetters(String s){
                  Stack<Character> stack = new Stack<Character>();
                      for (int i = 0; i < s.length(); i++) {
                          char c=s.charAt(i);
                          if(stack.contains(c))
                              continue;
                          while(!stack.isEmpty() && stack.peek()>c && s.indexOf(stack.peek(),i)!=-1)
                              stack.pop();
                          stack.push(c);
                      }
                      char chars[]=new char[stack.size()];
                      for (int i = 0; i < stack.size(); i++) {
                          chars[i]=stack.get(i);
                      }
                      return new String(chars);
              }

              public static void main(String[] args) {
                  String string = "bbcaac";
                  System.out.println(removeDuplicateLetters(string));
              }
          }


          好了,今天的文章就到這里,如果覺得有所收獲,請順手點(diǎn)個(gè)在看或者轉(zhuǎn)發(fā)吧,你們的支持是我最大的動力 。

          上期推文:

          LeetCode1-300題匯總,希望對你有點(diǎn)幫助!
          LeetCode刷題實(shí)戰(zhàn)301:刪除無效的括號
          LeetCode刷題實(shí)戰(zhàn)302:包含全部黑色像素的最小矩陣
          LeetCode刷題實(shí)戰(zhàn)303:區(qū)域和檢索 - 數(shù)組不可變
          LeetCode刷題實(shí)戰(zhàn)304:二維區(qū)域和檢索 - 矩陣不可變
          LeetCode刷題實(shí)戰(zhàn)305:島嶼數(shù)量II
          LeetCode刷題實(shí)戰(zhàn)306:累加數(shù)
          LeetCode刷題實(shí)戰(zhàn)307:區(qū)域和檢索 - 數(shù)組可修改
          LeetCode刷題實(shí)戰(zhàn)308:二維區(qū)域和檢索 - 可變
          LeetCode刷題實(shí)戰(zhàn)309:最佳買賣股票時(shí)機(jī)含冷凍期
          LeetCode刷題實(shí)戰(zhàn)310:最小高度樹
          LeetCode刷題實(shí)戰(zhàn)311:稀疏矩陣的乘法
          LeetCode刷題實(shí)戰(zhàn)312:戳氣球
          LeetCode刷題實(shí)戰(zhàn)313:超級丑數(shù)
          LeetCode刷題實(shí)戰(zhàn)314:二叉樹的豎直遍歷
          LeetCode刷題實(shí)戰(zhàn)315:計(jì)算右側(cè)小于當(dāng)前元素的個(gè)數(shù)

          瀏覽 35
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  伊伊成人网 | 黄色大全在线免费观看 | 亚洲IV秘 一区二区三区 | 久久精品电影无码 | 亚州视频在线观看 |