全网最简单最详细的字典序问题解法

这篇博客详细解析了字典序的概念,从一位数到多位数的字典序计算方式,通过f(i,k)和g(k)函数阐述了如何求解长度为k且以特定字母开头的升序字符串总数。内容包括对不同位数字符串的字典序计算,以及逐位比较的策略。" 124592472,13473376,STM32外部中断详解与配置,"['STM32单片机', '中断系统', 'Cubemx配置', 'GPIO中断', '微控制器']
摘要由CSDN通过智能技术生成

一位数 
 a,b,c,d,....z  26
 两位数 
 ab,ac,......az 25
 bc,bd,be....bz 24
 cd,ce.......bz 23
 de,df.......dz 22
 ..............
 三位数 
 abc abd abe abf 24
 acd              23
 
 f(i,k)可以表示为长度为k,i的字母开头的数量

g(k)表示为长度为k的升序字符串的总数 

 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ1ODQ0NzE2,size_16,color_FFFFFF,t_70#pic_center
 
 
 一个k长的字符串的字典序应该等于
 1、位数小于k的升序字符串的总数
 2、长度相同,首字母比其小的总数 
 3、第一位数相同,第二位字母小于当前的第二位的总数
 4、第一二位数相同,第三位小于当前的第三位的总数
 ....
 然后以上相加再加1 

#include<stdio.h>
#include<string.h>
int f(int i,int k){//i为首字母,长度为k的字符串数量
	int num=0;	
	if(k==1) return 1;
	for(int j=i+1;j<&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值