当前位置: 首页 > news >正文

大气装饰装修企业网站模版源码vi视觉形象设计

大气装饰装修企业网站模版源码,vi视觉形象设计,外贸网站源码多语言,网站开发如何修改字体目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介…

目录

  • 前言
  • 问题介绍
  • 解决方案
  • 代码编写
    • java语言版本
    • c语言版本
    • c++语言版本
  • 思考感悟
  • 写在最后

前言

当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~

在此感谢左大神让我对算法有了新的感悟认识!

问题介绍

原问题
给定字符串chars = [A,B…,Z],定义一个字符串和数字之间的关系
A, B, C, D…Z, AA, AB,…,AZ,BA, BB,BC,…BZ,AAA…ZZZ
1, 2, 3, 4, … 26, 27, 28, …52
问题一:给定一个字符串str,求出该字符串代表的数字
问题二:给定一个数字,求出该数字代表的字符串

解决方案

原问题
首先该问题通过k进制数是无法解决的,但是可以收到一些启发,使用伪进制数来解决问题
比如给定的字符集合chars = [A,B,C,D],那么该字符集合能够做出进制为4的伪进制数,相当于"逢E进一"
因此当给定一个str = BCBD时,求对应的数值,可以从高位开始计算进制转换即可
当给定一个数值时,分以下步骤计算:
1、计算数值需要多少位来存储,通过(数值/k^n)来找到n最大能够取到多少?
2、求出位数,后面循环填充每一位的数值即可,从高位开始计算,具体看代码

代码编写

java语言版本

原问题:
方法一:

    /*** 二轮测试:给定num,获取String的值* @param num* @return*/public static String num2StringCp1(int num, char[] chars) {if (num < 0 || chars == null || chars.length == 0) {return null;}int len = chars.length;// 先判断需要多少位存储int n = 0;while((int)(num / Math.pow(len, n))!= 0) {n++;}char[] res = new char[n];// 将所有位全部置为Afor (int i = 0; i < res.length; i++) {res[i] = 'A';num -= Math.pow(len, i);}// 此时num剩下的需要进行进制转换,从最高位开始判断for (int i = 0; i < res.length; i++) {int r = (int) (num/Math.pow(len, res.length-1 - i));res[i] += r;num -= r * Math.pow(len, res.length-1 - i);}return String.valueOf(res);}/*** 二轮测试:通过字符串获取num数字* @param str* @param chars* @return*/public static int string2Num(String str, char[] chars) {if (str == null || chars == null|| str.length() == 0 || chars.length == 0) {return 0;}int len = chars.length;char[] chars1 = str.toCharArray();int res = 0;for (int i = 0; i < chars1.length; i++) {int cur = chars1[i] - 'A' + 1;res += cur * Math.pow(len, chars1.length - 1 - i);}return res;}public static void main(String[] args) {System.out.println(string2Num("BABC", new char[]{'A', 'B', 'C'}));}

进阶问题

/*** 进阶问题:如果数组中存在一个1,如何能够最快的求得答案* @param arr* @return*/public static int unformSumCp3(int[] arr){if (arr == null || arr.length == 0) {return 0;}Arrays.sort(arr);int range = 0;for (int i = 0; i < arr.length; i++) {if (arr[i] > range+1) {return range+1;}else {range += arr[i];}}return range+1;}

c语言版本

正在学习中

c++语言版本

正在学习中

思考感悟

1、首先说一下字符串转数字的过程,这个过程其实很简单,确实跟进制转换是一致的只是没有0而已,A代表1,B代表2,计算出来结果没有问题
2、在说一下数字转字符串的问题,这个按照k^n最大不超过当前num的值的方式进行计算即可,整体来讲没有难度,就是需要对转换的原理熟悉一下

写在最后

方案和代码仅提供学习和思考使用,切勿随意滥用!如有错误和不合理的地方,务必批评指正~
如果需要git源码可邮件给2260755767@qq.com
再次感谢左大神对我算法的指点迷津!

http://www.yayakq.cn/news/86963/

相关文章:

  • 阿里巴巴的网站是自己做的吗大灰狼网站更新升级通知
  • 网站建设求职信息wordpress产品参数多图
  • 简述如何优化网站的方法网站建设企业需要符合哪些建
  • 做钓鱼网站教程视频wordpress设置菜单导航栏
  • 超市建网站教育培训网页设计
  • 宁波百度网站建设WordPress代收插件
  • 做洗化的网站龙岩iot开发福建小程序建设
  • 网站改版案例系统开发与网站开发
  • 鲜花电商网站开发质量品质好的装修公司
  • 网站开发有哪些方向网站制作网站建设需要多少钱
  • 苏州网站推广哪家好成都网站建设系统
  • phpcms建站教程男孩做网站
  • 石家庄网站建设方案推广番禺手机网站建设
  • 网站专题页面文案设计最新发布的最新
  • 网站开发招聘年薪小程序开发平台打不了字
  • 自己能制作免费网站吗wordpress怎么修改关键字
  • 专业单位网站设计企业龙岩到永定
  • 网站设计评级简单的手机网站模板
  • 怎么用网站源码建站做外贸需要关注的网站有什么问题
  • 建设网站有哪些目的是什么意思android编程
  • 建设施工合同备案在哪个网站如何做色流量网站
  • 做网站和做网店哪个好晋中网站seo
  • 外贸网站建设推广培训广告设计软件培训中心
  • 常平营销网站建设最近十大新闻
  • 哪个网站可以做行程wordpress iis 伪静态
  • 会展官方网站建设ui设计手机交互界面下载
  • 明薇通网站建设价格上海网站制作电话
  • 比较大气的企业网站抓取式网站建设
  • 蛋糕行业网站建设方案黑马程序员线上课程
  • uzi粉丝做的网站黑龙江省