日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【leetcode】443. String Compression

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【leetcode】443. String Compression 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目如下:

Given an array of characters, compress it in-place.

The length after compression must always be smaller than or equal to the original array.

Every element of the array should be a character (not int) of length 1.

After you are done modifying the input array in-place, return the new length of the array.


Follow up:
Could you solve it using only O(1) extra space?


Example 1:

Input: ["a","a","b","b","c","c","c"]Output: Return 6, and the first 6 characters of the input array should be: ["a","2","b","2","c","3"]Explanation: "aa" is replaced by "a2". "bb" is replaced by "b2". "ccc" is replaced by "c3".

?

Example 2:

Input: ["a"]Output: Return 1, and the first 1 characters of the input array should be: ["a"]Explanation: Nothing is replaced.

?

Example 3:

Input: ["a","b","b","b","b","b","b","b","b","b","b","b","b"]Output: Return 4, and the first 4 characters of the input array should be: ["a","b","1","2"].Explanation: Since the character "a" does not repeat, it is not compressed. "bbbbbbbbbbbb" is replaced by "b12". Notice each digit has it's own entry in the array.

?

Note:

  • All characters have an ASCII value in [35, 126].
  • 1 <= len(chars) <= 1000.
  • ?

    解題思路:從頭到尾遍歷數組,記錄連續字符的個數,然后插入數組前部,注意每次插入要記錄當前的偏移量offset?。

    代碼如下:

    class Solution(object):def compress(self, chars):""":type chars: List[str]:rtype: int"""lastChar = Nonecount = 0inx = 0offset = 0chars.append('END') # terminatorwhile inx < len(chars):i = chars[inx]if lastChar == None:lastChar = icount = 1elif lastChar == i:count += 1else:lastOff = offsetchars.insert(offset,lastChar)offset += 1if count != 1:count = str(count)for j in count:chars.insert(offset, j)offset += 1lastChar = icount = 1inx += (offset - lastOff)inx += 1#print charsdel chars[-1]return offset

    ?

    轉載于:https://www.cnblogs.com/seyjs/p/9275563.html

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的【leetcode】443. String Compression的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。