zoukankan      html  css  js  c++  java
  • 1663. Smallest String With A Given Numeric Value

    package LeetCode_1663
    
    /**
     * 1663. Smallest String With A Given Numeric Value
     * https://leetcode.com/problems/smallest-string-with-a-given-numeric-value/
     *
     * The numeric value of a lowercase character is defined as its position (1-indexed) in the alphabet,
     * so the numeric value of a is 1, the numeric value of b is 2, the numeric value of c is 3, and so on.
    The numeric value of a string consisting of lowercase characters is defined as the sum of its characters' numeric values.
    For example, the numeric value of the string "abe" is equal to 1 + 2 + 5 = 8.
    You are given two integers n and k. Return the lexicographically smallest string with length equal to n and numeric value equal to k.
    Note that a string x is lexicographically smaller than string y if x comes before y in dictionary order, that is, either x is a prefix of y,
    or if i is the first position such that x[i] != y[i], then x[i] comes before y[i] in alphabetic order.
    
    Example 1:
    Input: n = 3, k = 27
    Output: "aay"
    Explanation: The numeric value of the string is 1 + 1 + 25 = 27, and it is the smallest string with such a value and length equal to 3.
    
    Example 2:
    Input: n = 5, k = 73
    Output: "aaszz"
    
    Constraints:
    1. 1 <= n <= 105
    2. n <= k <= 26 * n
     * */
    class Solution {
        /*
        * solution: Greedy, fill in reverse order, Time:O(k), Space:O(n)
        * */
        fun getSmallestString(n: Int, k_: Int): String {
            var k = k_
            val chars = CharArray(n) { 'a' }
            //because filled n 'a', so reduce k by n
            k -= n
            var i = n - 1
            //replace by 'a'+25 or 'a'+k
            while (k > 0) {
                val closestOne = Math.min(25, k)
                chars[i] = chars[i] + closestOne
                k -= closestOne
                i--
            }
            return String(chars)
        }
    }
  • 相关阅读:
    oracle函数大全(转载)
    oracle的基本数据类型(转载)
    oracle 数据类型详解---日期型(转载)
    队列的链式存储结构
    在Lua里写unity游戏笔记
    NGUI-快捷键
    NGUI在线电子书---NGUI for Unity
    NGUI学习笔记-UISprite
    unity延时方法Invoke和InvokeRepeating
    NGUI-制作位图字体以及图文混排
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14029795.html
Copyright © 2011-2022 走看看