编程题
stefanDM
这个作者很懒,什么都没留下…
展开
-
编程题:Z字形变换
题目描述:将一个给定字符串s根据给定的行数numRows,以从上往下、从左到右进行Z 字形排列。原理分析:分析新组成的字符序列与numRows的关系,不难发现,当numRows=4时,第一行PIN,原序列P索引加上6便是I,而I的索引加上6便是N。同样寻找第二行的规律,A--L--S,则A的原序列索引加上6便是S。可以看出这个编程问题是一个周期问题。拿第二行来研究索引与numRows的关系,A到L索引加4,L到S索引加2;S到I索引加4,I到G索引加2。也就是说索引的变化是...原创 2021-02-24 16:56:14 · 245 阅读 · 0 评论 -
编程题:最长回文子串
题目描述:给你一个字符串s,找到s中最长的回文子串。原理分析:回文子串的情况主要有两种,一种是以单个字符对称,例如:121,以2为对称;另一种是以一对为中心,例如:1221,以22为中心。判断的标准在于看中心两侧是否一致。问题的关键在于找到对称中心,以及判断是否符合对称两侧一致。除此之外,需要注意的就是在遍历的时候不要超出范围,并且考虑到字符串为空和字符串中不存在回文的处理。编程语言:C++代码实现:#include <iostream>#include &...原创 2021-02-22 15:33:59 · 229 阅读 · 0 评论 -
明明的随机数
题目描述:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。原理分析:先排序,再用unique进行去重。编程语言:C++代码实现:#include<iostrea原创 2021-02-20 14:08:32 · 145 阅读 · 1 评论 -
进制转换(16转10)
题目描述:写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。原理分析:输入的是字符串,要转换成整数。将字符‘0’~‘9’,‘A’~‘F’转化成对应的数字。不能直接转换,可通过做减法来实现。例如:1=‘1’-‘0’;11='B'-'A'+10.编程语言:C++代码实现:#include <iostream>#include <map>#include <string>#include <algorithm&g...原创 2021-02-20 14:02:25 · 1560 阅读 · 0 评论 -
编程题:汽水瓶
题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?使用编程语言:C++空水平计数原理:计数的实质就是满3个空瓶就可以换一瓶水;如果仅有2个空瓶,可以借1瓶水然后换一原创 2021-02-19 23:04:32 · 265 阅读 · 2 评论