2021-11-18:给定一个长度len,表示一共有几位。所有字符都是小写(a~z),可以生成长度为1,长度为2,长度为3…长度为len的所有字符串。如果把所有字符串根据字典序排序,每个字符串都有所在的位置。给定一个字符串str,给定len,请返回str是总序列中的第几个。比如len = 4,字典序的前几个字符串为:a aa aaa aaaa aaab … aaaz … azzz b ba baa baaa … bzzz c …。a是这个序列中的第1个,bzzz是这个序列中的第36558个。

答案2021-11-18:

cdb,总共长度为7,请问cdb是第几个?
第一位c :
以a开头,剩下长度为(0~6)的所有可能性有几个
+
以b开头,剩下长度为(0~6)的所有可能性有几个
+
以c开头,剩下长度为(0)的所有可能性有几个
第二位d :
+
以ca开头的情况下,剩下长度为(0~5)的所有可能性有几个
+
以cb开头的情况下,剩下长度为(0~5)的所有可能性有几个
+
以cc开头的情况下,剩下长度为(0~5)的所有可能性有几个
+
以cd开头的情况下,剩下长度为(0)的所有可能性有几个
第三位b
+
以cda开头的情况下,剩下长度为(0~4)的所有可能性有几个
+
以cdb开头的情况下,剩下长度为(0)的所有可能性有几个。

代码用golang编写。代码如下:

package main

import "fmt"

func main() {
s := "c"
len0 := 2
ret := kth(s, len0)
fmt.Println(ret)
}
func kth(s string, len0 int) int {
if len(s) == 0 || len(s) > len0 {
return -1
}
num := []byte(s)
ans := 0
for i, rest := 0, len0-1; i < len(num); i, rest = i+1, rest-1 {
ans += int(num[i]-'a')*f(rest) + 1
}
return ans
} // 不管以什么开头,剩下长度为(0~len)的所有可能性有几个
func f(len0 int) int {
ans := 1
for i, base := 1, 26; i <= len0; i, base = i+1, base*26 {
ans += base
}
return ans
}

执行结果如下:


左神java代码

2021-11-18:给定一个长度len,表示一共有几位。所有字符都是小写(a~z),可以生成长度为1,长度为2,长度为3...长度为len的所有字符串。如果把所有字符串根据字典序排序,每个字符串都有的更多相关文章

  1. 日常Java 2021/11/18

    用idea实现Javaweb登录页面 <%-- Created by IntelliJ IDEA. User: Tefuir Date: 2021/11/18 Time: 18:14 To ch ...

  2. python 实现整数的反转:给定一个整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.

    给定一个n位(不超过10)的整数,将该数按位逆置,例如给定12345变成54321,12320变成2321. # 第一种方法,使用lstrip函数去反转后,数字前面的0 import math num ...

  3. [java大数据面试] 2018年4月百度面试经过+三面算法题:给定一个数组,求和为定值的所有组合.

    给定一个数组,求和为定值的所有组合, 这道算法题在leetcode应该算是中等偏下难度, 对三到五年工作经验主要做业务开发的同学来说, 一般较难的也就是这种程度了. 简述经过: 不算hr面,总计四面, ...

  4. 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &quo ...

  5. 【leetcode-03】给定一个字符串,请你找出其中不含有重复字符的最长子串的长度

    开个新坑,leetcode上面做题目.下面是题目描述: <!-- 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例 1: 输入: "abcabcbb" 输出 ...

  6. 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 print-all-combinations-of-given-length

    // 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 /* Input: set[] = {'a', 'b'}, k = 3 Output: aaa aab aba ...

  7. 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度。 2)输出字符串中第一个出现字母a的位置。 3)在字符串的第3个字符后面插入子串“hello”,输出新字符串。 4)将字符串“hello”替换为“me”,输出新字符串。 5)以字符“m”为分隔符,将字符串分离,并输出分离后的字符串。 */

    namespace test4 {/* 4.写一个控制台应用程序,接收一个长度大于3的字符串,完成下列功能: 1)输出字符串的长度. 2)输出字符串中第一个出现字母a的位置. 3)在字符串的第3个字符 ...

  8. 现在有一个长度20的SET,其中每个对象的内容是随机生成的字符串,请写出遍历删除LIST里面字符串含"2"的对象的代码。

    现在有一个长度20的SET,其中每个对象的内容是随机生成的字符串,请写出遍历删除LIST里面字符串含"2"的对象的代码. public class RemoveTwo { //le ...

  9. 算法:Manacher,给定一个字符串str,返回str中最长回文子串的长度。

    [题目] 给定一个字符串str,返回str中最长回文子串的长度 [举例] str="123", 1 str="abc1234321ab" 7 [暴力破解] 从左 ...

  10. 给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后。 要求:空间复杂度是O(1),且只能遍历一次字符串。

    题目:给定一个字符串里面只有"R" "G" "B" 三个字符,请排序,最终结果的顺序是R在前 G中 B在后. 要求:空间复杂度是O(1),且 ...

随机推荐

  1. mysql查询近N天的数据

    今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ...

  2. meterpreter的使用

    meterpreter是metasploit中的一个杀手锏,通常在漏洞利用成功后,会返回给攻击者一个攻击通道,其中有很多自动化操作 场景布置 生成木马 首先,我们使用metasploit中的另一个后门 ...

  3. 前后端分离项目,配置问题导致后端session丢失问题

    今天遇到一个巨坑,后端写了获取验证码接口,以及验证验证码接口 获取验证码接口: /// <summary> /// 获取验证码 /// </summary> /// <r ...

  4. day10-SpringBoot的异常处理

    SpringBoot异常处理 1.基本介绍 默认情况下,SpringBoot提供/error处理所有错误的映射,也就是说当出现错误时,SpringBoot底层会请求转发到/error这个映射路径所关联 ...

  5. 2020寒假学习笔记12------Python基础语法学习(一)

    代码的组织和缩进 Python 语言直接通过缩进来组织 代码块."缩进"成为了 Python 语法强制的规定.缩进时,几个空格都是允许的,但是数目必须统一.我们通常采用" ...

  6. ChatGPT3.5使用体验

    优点 1.ChatGPT 能颠覆现有的搜索引擎(百度.谷歌). 2.ChatGPT 的交互体验非常好,满足"智能助手"这种工具. 3.如何使用好ChatCPT? 回到一个经典的问题 ...

  7. Thread 线程中的 Synchronized block and lock

    Thread Definition of Synchronized Synchronized block in java are marked with the synchronized keywor ...

  8. pandas安装1

    Python 官方标准发行版并没有自带 Pandas 库,因此需要另行安装.除了标准发行版外,还有一些第三方机构发布的 Python 免费发行版, 它们在官方版本的基础上开发而来,并有针对性的提前安装 ...

  9. pandas之excel操作

    Excel 是由微软公司开发的办公软件之一,它在日常工作中得到了广泛的应用.在数据量较少的情况下,Excel 对于数据的处理.分析.可视化有其独特的优势,因此可以显著提升您的工作效率.但是,当数据量非 ...

  10. Springboot整合Jwt实现用户认证

    前言 相信大家在进行用户认证中或多或少都要对用户进行认证,当前进行认证的方式有基于session.token等主流方式,但是目前使用最广泛的还是基于JWT的用户认证,特别适用于前后端分离的项目. 本篇 ...