一个字符串编码问题的程序解决

C#批量转换unicode编码 前段时间在网上下了一个程序,通过反编译得到源代码,但是中文全部都成了 /u68c0/u6d4b/u5230/u7cfb了字符串,看不明白,需要转换成中文,所以我写了小程序主要实现的代码如下:得到单个字符的值        /**////         /// 得到单个字符的值        ///         ///         ///         private u 阅读详情

原题:
/*
描述
为了最大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。
这个编码系统按照如下的方式工作:
字符串是按照长度从小到大的顺序排列的
长度相同的字符串,是按照字典需排列的
则根据这个编码系统,所有的字符串从 a 开始可以编码如下:
a - 1 b - 2 … z - 26 ab - 27 … az - 51 bc - 52 … vwxyz - 83681 …

那么,请编程计算出一个字符串在这个编码系统下编码后的值是多少。
输入
输入的第一行为 N,表示有 N 组数据。后面的 N 行每行包含一个不超过 10 个字母的字符串。
输出
输出字符串所对应的编码,如果该字符串不能被编码,则输出 0。
测试用例 1 以文本方式显示
1
bf
以文本方式显示
55

*/

解决代码:

#include<stdio.h>
#include<string.h>
#include <iostream>
#include <math.h>

using namespace std;
long long t[10][26]= {0};    //查表,将最简形式的编码事先准备好 
/*

行号:  0   1    2    3    4   ...   24   25 
列号:0 a    b    c    d    e    ...   y   z  
      1 ab   bc   cd   de   ef   ...   yz  zz
      2 abc  bcd  cde  efg  ghi  ...   xyz zzz
      3
      4
      ...
      9 abcdefghij  .....           qrstuvwxyz ...zzzzz
*/
void init_table()
{
    int i,j;
    for(i=0;i<26;i++)
    {
        t[0][i]=i+1;  //对应的是 a/b/c/.../z的编码是1-26; 
    }

    for(i=1;i<10;i++)
    {
        t[i][0]=t[i-1][25]+1;  //abc 总是等于上一行(降阶) yz  +1 
        for(j=1;j<26-i;j++)
        {
            t[i][j] =  t[i][j-1] + 1 + t[i-1][25] - t[i-1][j];
            //cde - bcd = byz + 1 - bcd = 1 + yz - cd 

        }
        for(j=26-i;j<26;j++)
        {
            t[i][j]=t[i][j-1]; //因为z2、y3这些不合法,所以无增加编码,都是和前面的最简式子一样的数 
        }

    }

    return;
}
long long  lookup(char *sNum)
{
    /*
    举例: 
    bdfxz = b4 - c3 + d3 - e2 + f2 - g1 +x1 - y0 +z0

    */
    long long ret =0;
    int i,j;
    char *p = sNum;
    int n = strlen(p);
    while(n>1)
    {
        i = n-1;
        j = *p - 'a';
        ret = (t[i][j] - t[i-1][j+1]) + ret;
        n--;
        p++;
    }
    ret += t[0][*p-'a'];

    return ret;

}
int main(void)
{
    int i,j,k;
    char s1[80]="vwxyz";
    //Soloe@csdn 欢迎转载,但请保留 
    init_table();

    int n;
    cin>>n;
    while(n>0)
        {
            cin>>s1;
            cout<<lookup(s1)<<endl;
        }

    return 0;
//Soloe@csdn 欢迎转载,但请保留
}
导数在工程与AI中的12个实战应用解析 导数作为数学中的基本概念,本质是描述变化率的工具,其核心价值在于将非线性问题局部线性化处理。从原理上看,通过极限过程捕捉函数瞬时变化特性,使工程师能精确控制系统动态行为,帮助科学家量化自然规律变化速率。在技术实现层面,现代符号计算(如Mathematica)、数值计算(如MATLAB)和自动微分(如PyTorch)工具链的发展,大幅提升了导数计算的效率与精度。典型应用场景涵盖机械控制(如ABS防抱死系统)、金融工程(如期权希腊值计算)、医疗影像(如Canny边缘检测)等领域。特别在机器学习中,反向传播算法依 阅读详情

相关推荐

kubeadm init 运行时kebelet启动失败问题

解决k8s kubeadm init时遇到的kubelet问题

ZDPZN的博客 6074

H19编码(北理编程题目)

H19:编码(选作) 成绩 5 开启时间 2021年11月1日 星期一 08:00 折扣 0.8 折扣时间 2021年11月22日 星期一 23:55 允许迟交 否 关闭时间 2021年11月29日 星期一 23:55 描述 为了最大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。 这个编码系统按照如下的方

cv7xz的博客 1541

STM32外部中断与事件机制深度解析:从硬件触发到软件响应

本文深入解析STM32外部中断与事件机制,从硬件触发到软件响应的完整流程。通过对比中断和事件的应用场景、响应速度及配置方法,帮助开发者优化嵌入式系统设计,特别适合需要低功耗或高实时性的项目。

weixin_29175469的博客 408

编码

编码 编码 描述 为了最大程度地节约存储空间,经常需要把信息进行编码。一种很有效的编码方法是用数字来表示一串字符。假设这些字符串都是由不重复的英文小写字母组成的,且每个字符串中的英文字母都是从小到大排列的。 这个编码系统按照如下的方式工作: 字符串是按照长度从小到大的顺序排列的 长度相同的字符串,是按照字典需排列的 则根据这个编码系统,所有的字符串从 a 开始可以编码如下: a - 1 b - 2...

SChenlyx 1103

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

RT-Thread stm32h7使用串口DMA

stm32h7在rtthread中无法使用串口DMA,通过更改驱动代码使其支持串口DMA

qq_35141454的博客 2286

2021-04-21

91. 解码方法 难度中等765 一条包含字母A-Z的消息通过以下映射进行了编码: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 要解码已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106"可以映射为: "AAJF",将消息分组为(1 1 10 6) "KJF",将消息分组为(11 10 6) 注意,消息不能分组为(1 11 06),因为"06"不能映射为"F",这是由于"...

weixin_43762576的博客 228

【图形学】Loop细分算法及半边结构实现(C++)

文章目录Loop 细分算法介绍增加新顶点更新旧顶点算法实现半边结构半边结构的表示方法半边结构的构造方法创建所有顶点创建所有面及半边半边结构的使用 Loop 细分 顾名思义,网格细分是将粗糙网格精细化的过程,如下动图。Loop细分是众多网格细分算法的一种,Loop细分仅仅对三角形网格模型有效。值得注意的是,虽然叫Loop细分,但是不能理解为“循环”细分,叫这个名字是因为作者的名字是这个而已。 下面是一个粗糙的兔子模型1000个面,进行3次细分 算法介绍 Loop细分算法主要分两步进行 增加新顶点:增加

wk_119的博客 8066

字符串p型编码

描述 给定一个完全由数字字符(‘0’,‘1’,‘2’,…,‘9’)构成的字符串str,请写出str的p型编码串。例如:字符串122344111可被描述为"1个1、2个2、1个3、2个4、3个1",因此我们说122344111的p型编码串为1122132431;类似的道理,编码串101可以用来描述1111111111;00000000000可描述为"11个0",因此它的p型编码串即为110;1002...

lzx's blog 2188

rk3568 rk628桥片 rgb2hdmi

RK628 是瑞芯微全新推出的视频桥接芯片,支持丰富的显示接口,支持高分辨率大屏产品转换需求。基于DRM、FB的显示框架易于使用。 输入信号支持:HDMI、RGB、BT.1120,输出信号支持 HDMI、GVI、Dual LVDS、Dual MIPI、MIPI-CSI、RGB、BT.1120,最高支持4K 60fps 输入/输出转换,并且支持输入到输出 1/4~4倍的缩放。

weixin_35723192的博客 452

人工智能训练师三级·模型生命周期真题40题|训练→评估→调优全链路通关

本文为人工智能训练师三级考试真题解析系列第2篇,聚焦模型生命周期全链路(训练→评估→调优)。内容包含40道精选真题,覆盖数据划分、模型训练、评估指标、超参数调优4个核心阶段。重点考察:1)数据集的合理划分方法(留出法、交叉验证);2)模型训练的基本原理;3)关键评估指标(准确率、召回率、F1等)的应用场景;4)超参数调优技术(网格搜索、随机搜索等)。通过真题解析帮助考生系统掌握模型生命周期的闭环迭代方法论,提升从数据准备到模型优化的全流程实践能力。适合备考人工智能训练师三级认证的考生学习参考。

白话机器学习 89

编码方法

有一种码叫做变长码日常生活里面我们能感受到,有些文字用到次数非常多,比如“好的”,有些文字就用到特别少,比如“逼仄”之类,那么在编码的时候也要略加考虑,经常用的文字,它的编码要尽量短一点,不常用的可以长一点,这就导致了变长码的出现,实际应用中都是使用变长码的,因为它效率高。如何编码才算“好”我们对最佳编码的规定是:平均码长最小。插播一则挺重要的知识,唯一可译码的判别准则在教材126页例5.4.1里面

Clifnich 918

一文整理深度学习【深度学习linux的docker+pytorch+cuda+nvidia-docker+vscode配置】

docker+pytorch+cuda+nvidia-docker+vscode

Edward的博客 1335

Qt5程序参数包含中文GBK编码的问题

1、背景 Qt5程序(WeekReport.exe)的main函数里有如下代码: //only for test int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); if ((argc <= 1) || !QFileInfo::exists(argv[1]))...

weixin_30776545的博客 502

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

如何输出某种编码的字符串,比如ISO-8859-1?

public class Atranslate {         public static void main(String[] args) {           String str = "aa" ;           str =translate( str) ;           System.out.print(str);     }     private st

许高鹏的博客 2457

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

字符串的编码解码问题

import java.io.UnsupportedEncodingException; import java.nio.charset.StandardCharsets; import java.util.Arrays; /* 编码: byte[] getBytes(String charsetName):使用指定的字符集将该String 编码为一系列字节,将结果存储到新的字节数组中 解码: String(byte[] bytes):通

m0_51765675的博客 224

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

GBK编码和UTF-8编码互转的大坑

  这几天遇到一个BUG,问题很简单,解决却花了3、4天,特意记录下来。   linux环境下,将默认编码设置为GBK以后,运行GBK编码的脚本,调用一个Java的jar包,然后总jar包中返回GBK字符串。但是不知道是哪里出了问题,返回的参数一直是问号乱码。   放上脚本代码: #!/bin/bash #str="\"$1 $2 $3\"" str=...

donggou7958的博客 684

ruby正则表达式中的编码问题

问题描述: 用ruby写一个抓网页分析的小程序,用

闪刀浪子 925

括号编码

括号编码 Time Limit : 1000 MS Memory Limit : 65536 KB Description S = s1 s2...s2n 是一个符合格式的括号的字符串,S能按下面两种方式编码: P编码:编码是一个整数序列P = p1 p2...pn,pi是第i个右括号之前的左括...

weixin_30747253的博客 562

java/jsp/sql server项目 字符编码统一_JSP开发过程遇到的中文乱码问题及解决方案...

对于程序猿来说,乱码问题真的很头疼,下面列举几种常见的乱码。1.数据库编码不一致导致乱码解决方法:首先查看数据库编码,输入:showvariableslike"%char%";确认编码一致,如果不一致,可输入:SETcharacter_set_client='utf8';SETcharacter_set_connection='utf8';SETcharacter_set_result...

weixin_35181426的博客 276

如何解决在DOS编译java类时出现的“错误: 编码GBK的不可映射字符”

进来研究火龙果大大的控制台读取字符串,代码如下: import java.io.Console; public class ReadConsole { public static void main(String[] args) { String str = readConsole("请输入:"); System.err.println(str); } public

不懂不懂 1747

编码问题

一般的编码解码定义以及使用 联通问题

qq_34123420的博客 349

文本处理中unicode字符65279(ZERO WIDTH NO-BREAK SPACE)遇到的问题

代码中有一个功能需要将从其他模块返回值中读取的字符串转化为int值(例如:字符串"12345"转化为int值12345,试用java Integer.parseInt()函数即可),但是在程序测试中出现异常[code="java"]java.lang.NumberFormatException: For input string: "118158" at java.lang....

grow up 1194

base64编码加密

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET

何淑贤 669

qt & qt creator 中文字符串查找问题

<br />用qt creator 直接写了一个程序,显示中文没有问题,<br />但是在查找字符串的时候<br /> <br />QString indexof 方法如果查找的是中文就一直返回-1 查找不到,说明QString内部的编码和tr以后的编码不一样<br /> <br />搜索了半天,发现要在qapplication里面预先设置编码。<br /> <br />设置默认的QString的编码和tr的编码一致就可以了。<br /> <br />QApplicationa(argc,argv);<br

简单,就是他 4392

DOS系统里JAVA是gbk格式还是_如何解决在DOS编译java类时出现的“错误: 编码GBK的不可映射字符”...

进来研究火龙果大大的控制台读取字符串,代码如下:import java.io.Console;public class ReadConsole {public static void main(String[] args) {String str = readConsole("请输入:");System.err.println(str);}public static String readCons...

weixin_42382703的博客 89
上一篇: 也谈C/C++中的位域
下一篇: 一道逻辑推理题的C++实现
Soloe
博客等级 码龄21年 14粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值