求字符 ‘a‘ 和 ‘b‘ 组成的,最大长度为n的字符串中字典序第 k 个字符串

devtools/2024/11/16 21:30:39/

求字符 ‘a’ 和 ‘b’ 组成的,最大长度为n的字符串中字典序第 k 个字符串

先来解释一下这个题目,假设最大长度为3,那么由字符ab组成的字符串有:

a, b, ab, aaa, aba...

把这些字符串按照字典序排序:

  1. a
  2. aa
  3. aaa
  4. aab
  5. ab
  6. aba
  7. abb
  8. b
  9. ba
  10. baa
  11. bab
  12. bb
  13. bba
  14. bbb

由于只有两个字符,可以用前缀树来存储所有的字符串,对于n=2时的前缀树:
在这里插入图片描述

既然用到了树数据结构,这里可以用回溯法的思想来解决这道问题,先遍历左子节点,即先获取字符a,然后再遍历右子节点,即获取字符b
代码如下:

java">public class KLenString{public static boolean found;public static int k;public static String result;public static void backtrace(StringBuilder sb, int depth){if(found){return;}if(sb.length() > 0){k--;if(k == 0){result = sb.toString();found = true;return;}}if(sb.length() == depth){return;}sb.append('a');backtrace(sb, depth);sb.deletCharAt(sb.length()-1);sb.append('b');backtrace(sb, depth);sb.deletCharAt(sb.length()-1);}
}

http://www.ppmy.cn/devtools/134526.html

相关文章

一文1800字使用Jmeter进行http接口性能测试!

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 为什么要做接口测试? 越底层发现b…

EXPLAIN优化慢SQL

项目中发现数据查询很慢,导致前端超时等待的问题。经过日志打印发现,查询sql耗时10秒以上,相关sql如下: select distincttablemodel.*from pjtask_model tablemodelJOIN buss_type_permission a ON (tablemodel.fields_data_id …

【分布式】CAP理论

CAP定理的核心要点: CAP定理指出,任何一个分布式系统在面对网络分区(Partition)的情况下,最多只能同时满足以下三个特性中的两个: 一致性(Consistency): 所有节点在同一…

VS2022编译32位OpenCV

使用环境 Visual Studio 2022 OpenCV: 4.7.0 cmake: 3.30.2一、使用CMake工具生成vs2022的openCV工程解决方案 打开cmake,选择opencv的源代码目录,创建一个文件夹,作为VS工程文件的生成目录 点击configure构建项目,弹出构建设置…

MySQL --- 自定义函数获取部门层级名称

介绍 使用MySQL自定义函数,获取当前部门及上级所有部门的名称。 示例代码 向自定义函数传入子级部门id,自定义函数返回,子级部门名称及上级所有层级部门名称,以" / "分隔符分割。 (1)创建自定…

[Mysql] Mysql的多表查询----多表关系(下)

4、操作 方式二&#xff1a;创建表之后设置外键约束 外键约束也可以在修改表时添加&#xff0c;但是添加外键约束的前提是&#xff1a;从表中外键列中的数据必须与主表中主键列中的数据一致或者是没有数据。 语法&#xff1a; alter table <从表名> add constr…

前后端分离练习(云客项目)

这几天学习了一点前端的开发&#xff0c;后面通过这个小项目来整理开发的过程&#xff0c;参考的是动力节点的动力云客这个项目&#xff0c;大家有兴趣可以去看一下视频&#xff0c;我更多的是学习了它的前端开发&#xff0c;后端我是用自己的方式来的&#xff0c;那么开始今天…

微信小程序navigateTo:fail webview count limit exceed

theme: nico 你们好&#xff0c;我是金金金。 场景 uniapp编写微信小程序&#xff0c;使用uni.navigateTo跳转的过程中报错如下&#xff1a; 报错意思也非常明显了&#xff1a;errMsg":"navigateTo:fail webview 数量超出限制 排查 排查之前我先贴一下代码 代码非…