LeetCode-python 316.去除重复字母

题目链接
难度:困难       类型: 贪心、栈

给定一个仅包含小写字母的字符串,去除字符串中重复的字母,使得每个字母只出现一次。需保证返回结果的字典序最小(要求不能打乱其他字符的相对位置)。

示例1

示例2

遍历数组,一个一个考虑是否需要,若需要,就存入stack
遍历之前用collections.Counter统计每个字母的个数

当遍历到第i个字母s[i]时,首先s[i]的总个数减去1,再考虑这个字母要不要加入stack,加入之前,还要看已经加入的字母需不需要从stack中删除,例如bab,第一个b是要被删除的,因为b的字典序大于a,且a之后还有一个b,所以可以保留后一个b而删掉前一个b。那么,删除stack中最后一个字母stack[-1]的条件就是:
stack不空 且 stack[-1] > s[i] 且 s[i]不在stack中 且 stack[-1]的个数大于零

s[i]加入stack的条件就是:
s[i]不在stack中

本文链接: https://www.jianshu.com/p/e31aed2b4dc5



  • 濡備綍绯荤粺鍦拌嚜瀛Python?
    绛旓細2.瀛︿範鍩虹鐭ヨ瘑锛氫簡瑙Python鐨鍩烘湰璇硶銆佹暟鎹被鍨嬨佹帶鍒剁粨鏋勭瓑銆傚彲浠ラ氳繃闃呰鏁欐潗銆佽鐪嬪湪绾挎暀绋嬫垨鍙傚姞璇剧▼鏉ュ涔犮傛帹鑽愮殑瀛︿範璧勬簮鏈夈奝ythonCrashCourse銆嬨併奓earnPythontheHardWay銆嬬瓑銆3.瀹炶返缂栫▼锛氱悊璁哄涔犳槸鍩虹锛屼絾瀹炶返鎵嶈兘宸╁浐鎵瀛︾煡璇嗐傚彲浠ヤ粠绠鍗曠殑缁冧範棰樺紑濮嬶紝閫愭鎻愰珮闅惧害銆備緥濡傦紝鍦LeetCode銆...
  • 濡備綍鍋氬ソpython鑷姩鍖栬繍缁
    绛旓細鐜板湪涓嶈鏄疞inux杩愮淮宸ョ▼甯堣繕鏄疷nix杩愮淮宸ョ▼甯堥兘闇瑕佹帉鎻ython锛屼互鎻愰珮杩愮淮鏁堢巼銆傜涓涓樁娈碉細鍒濈骇锛屾帉鎻Python鐨璇硶鍜屼竴浜涘父鐢ㄥ簱鐨勪娇鐢 鎺屾彙涓闂ㄨ瑷鏈濂界殑鏂规硶灏辨槸鐢ㄥ畠锛屾墍浠ユ垜瑙夊緱杈瑰璇硶杈瑰埛Leetcode鏄帉鎻ython鏈蹇殑鏂瑰紡涔嬩竴銆傚緢澶氬彧闇瑕佸皢Python浣滀负鑴氭湰鎴栬呭氨鏄啓涓浜涘皬绋嬪簭澶勭悊澶勭悊鏂囨湰鐨勮瘽锛屽埌...
  • 瀛Python鐩稿叧鍒嗕韩涓撻
    绛旓細Reddit涓婃湁澶ч噺鍏充簬Python 鐨閾炬帴锛屼篃浼氭湁涓嶅皯绋嬪簭鍛樺湪杩欓噷杩涜浜ゆ祦锛屽鏋滀綘鏈夐棶棰樼殑璇濓紝鍙互鍦ㄤ笂闈㈣繘琛屾彁闂紝鎴栬鑳藉緱鍒颁笉閿欑殑绛斿 5.寤栭洩宄扮殑瀹樻柟缃戠珯 www.liaoxuefeng.com 璁茶В璇︾粏锛屽姩鎵嬬粌涔狅紝鍙互杞绘澗鍏ラ棬python 6.leetcodehttps://leetcode.cn/ LeetCode鏄竴涓埛绠楁硶棰樼殑缃戠珯锛岄噷闈㈡湁澶氱璇█鍙...
  • 鏈夋病鏈変粈涔堢綉绔欓傚悎鏂版墜瀛︾紪绋嬬殑?
    绛旓細绋嬪簭鍛樺鏍 - 绉佸瘑鍏艰亴鎺ュ崟骞冲彴 鑷鍑哄搧锛屼繚璇佺ǔ瀹氾紒绋嬪簭鍛樺鏍堜綔涓鸿繛鎺ョ▼搴忓憳鍜屼紒涓氱殑妗ユ锛屽凡璧拌繃7骞寸殑鍘嗙▼锛屾槸瀵绘壘澶栧寘宸ヤ綔鐨勭瀵嗗熀鍦帮紝璁板緱鍋峰伔璁块棶鍝︺LeetCode - 绠楁硶瀛︿範鐨勪箰鍥 瀵逛簬绠楁硶鏂版墜锛孡eetCode鏄綘鐨勫叆闂ㄥ疂鍏搞傛棤璁烘槸宸╁浐鍩虹杩樻槸鎻愬崌绔炰簤鍔涳紝杩欓噷閮芥湁涓板瘜鐨勫涔犺祫婧愶紝璁╀綘鐨勭▼搴忓憳...
  • 鍝堝笇鎬濇兂鐨勬《鎺掑簭/璁℃暟鎺掑簭 2020-09-06(鏈厑绂佽浆)
    绛旓細绌洪棿澶嶆潅搴﹀垎鏋愶細 鎵鏈夊厓绱犻兘闇瑕佹槧灏勯噸鏂版斁鍒版《鍐咃紝O(n)leetcode 164. 鏈澶ч棿璺 缁欏畾涓涓棤搴忕殑鏁扮粍锛屾壘鍑烘暟缁勫湪鎺掑簭涔嬪悗锛岀浉閭诲厓绱犱箣闂存渶澶х殑宸笺 濡傛灉鏁扮粍鍏冪礌涓暟灏忎簬 2锛屽垯杩斿洖 0銆傜ず渚 1: 杈撳叆: [3,6,9,1] 杈撳嚭: 3 瑙i噴: 鎺掑簭鍚庣殑鏁扮粍鏄 [1,3,6,9], 鍏朵腑...
  • 缂栧啓python绋嬪簭璁$畻 1锝10000 涔嬮棿鏃㈣兘琚 3 鏁撮櫎鍙堣兘琚 7 鏁撮櫎鐨勮嚜鐒...
    绛旓細妤间笂鍥炵瓟澶畝鍗曠矖鏆,涓鐪嬪氨鏄粡甯稿埛leetcode鐨勫ぇ浣 杩欓噷鏈夋洿濂界悊瑙g殑鍐欐硶 a=sum([i for i in range(1,10000) if i%3==0 and i%7==0])print(a)def summer():sum=0 for i in range(1,10000):if i%3==0 and i%7==0:sum=sum+i return sum if __name__ == '__main__':...
  • 绠楁硶闈㈣瘯閫氬叧40璁 瑕冭秴 Leetcode 棰樼洰鎬荤粨(鏈畬寰呯画)
    绛旓細06|闈㈣瘯棰橈細鍙嶈浆涓涓崟閾捐〃&鍒ゆ柇閾捐〃鏄惁鏈夌幆 鏁版嵁涓庣畻娉曠粨鏋勪箣缇庯細 21 Merge Two Sorted Lists 銆 C 銆戙 python 銆 鍒犻櫎閾捐〃鍊掓暟绗 n 涓粨鐐 銆 Leetcode 鐨勮В棰 銆 姹傞摼琛ㄧ殑涓棿缁撶偣 Middle of the Linked List 20 Valid Parentheses 232 Implement Queue using Stacks ...
  • 濡備綍姝g‘瀛︿範鏁版嵁绉戝涓殑 python
    绛旓細澶у鏁版湁鎶辫礋鐨勬暟鎹瀛﹀鏄氳繃瀛︿範涓哄紑鍙戜汉鍛樺紑璁剧殑缂栫▼璇剧▼寮濮嬭璇 python 鐨,浠栦滑涔熷紑濮嬭В鍐崇被浼 leetcode 缃戠珯涓婄殑 python 缂栫▼闅鹃銆備粬浠涓哄湪寮濮嬩娇鐢 python 鍒嗘瀽鏁版嵁涔嬪墠,蹇呴』鐔熸倝缂栫▼姒傚康銆 璧勬繁鏁版嵁鍒嗘瀽甯 Manu Jeevan 璁や负,杩欐槸涓涓法澶х殑閿欒,鍥犱负鏁版嵁绉戝瀹朵娇鐢 python 鏉ュ鏁版嵁杩涜妫绱佹竻娲椼佸彲瑙嗗寲...
  • python3涓竴瀹氳澹版槑鍙傛暟绫诲瀷鍚?
    绛旓細涓嶆槸涓瀹氳銆傚洟闃熷紑鍙戯紝閫氬父浼氳姹傝繖涔堝仛锛屽洜涓轰綘鍐欑殑鍑芥暟锛屽叾浠栫殑鍚屼簨闇瑕佽皟鐢紝
  • 鍒氬紑濮嬪涔 Python 鍒板彲浠ュ啓鍑轰竴涓埇铏ぇ绾﹂渶瑕佸闀挎椂闂
    绛旓細鍙﹀杩樻湁涓鏈功銆奝ython鍙傝冩墜鍐屻嬶紝杩欐湰涔︿篃鍗佸垎鐨勬湁鐢紝鍏充簬Python鐨鏂规柟闈㈤潰鍩烘湰閮藉泭鎷湪鍐咃紝鍙互浣滀负涓鏈琍ython瀛楀吀鏉ユ煡璇娇鐢ㄦ柟娉曪紝鍗佸垎濂界敤銆傛帉鎻′竴闂ㄨ瑷鏈濂界殑鏂规硶灏辨槸鐢ㄥ畠锛屾墍浠ユ垜瑙夊緱杈瑰璇硶杈瑰埛Leetcode鏄帉鎻ython鏈蹇殑鏂瑰紡涔嬩竴銆傚緢澶氬彧闇瑕佸皢Python浣滀负鑴氭湰鎴栬呭氨鏄啓涓浜涘皬绋嬪簭澶勭悊澶勭悊...
  • 扩展阅读:leetcode online judge ... paperpass免费入口 ... leetcode hot100 ... leetcode js ... java windowbuilder ... leetcode官网 ... www.sony.com.cn ... leetcode app ... leetcode在线刷题网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网