zoukankan      html  css  js  c++  java
  • Daily Coding Problem: Problem #541

    /**
     * Good morning! Here's your coding interview problem for today.
    This problem was asked by Amazon.
    Run-length encoding is a fast and simple method of encoding strings. The basic idea is to represent repeated successive characters as a single count and character.
    For example, the string "AAAABBBCCDAA" would be encoded as "4A3B2C1D2A".
    Implement run-length encoding and decoding.
    You can assume the string to be encoded have no digits and consists solely of alphabetic characters. You can assume the string to be decoded is valid.
     * */
    class Problem_541 {
        
        fun decode(input: String): String {
            var numString = ""
            val sbOutput = StringBuilder()
            for (c in input) {
                if (c.isDigit()) {
                    numString += c
                } else {
                    val count = numString.toInt()
                    for (i in 0 until count) {
                        sbOutput.append(c)
                    }
                    numString = ""
                }
            }
            return sbOutput.toString()
        }
    
        fun encode(input: String): String {
            val sbOutput = StringBuilder()
            var seen = ' '
            var count = 0
            for (c in input) {
                if (seen == c) {
                    count++
                } else {
                    //the first time we run this, will get an extra zero that we'll need to remove
                    sbOutput.append(count).append(seen)
                    seen = c
                    //meet one char, so set the count to 1
                    count = 1
                }
            }
            val result = sbOutput.deleteCharAt(0).trim().toString()
            return result
        }
    }
  • 相关阅读:
    Perf 简介
    quagga源码分析--路由信息处理zebra-rib
    quagga源码分析--大内总管zebra
    定位虚拟机卡的原因
    quagga源码分析--内核通信netlink
    网络叠加模式VLAN、VxLAN、GRE
    DPDK support for vhost-user
    SR-IOV简介
    Nginx stream(TCP/UDP)负载均衡
    制作Ubuntu14.04的Openstack镜像
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/12899771.html
Copyright © 2011-2022 走看看