[ZPG TEST 115] 字符串【归类思想】】的更多相关文章

pdf效果太差,转成word效果依旧差,只好转成jpg传了. 这一题用到了“归类”的思想,令s(i, a)表示前i个字体,字符a出现的次数.那么ans一定等于一个 (  s(i, a) - s(j, a)  ) - (  s(i, b) - s(j, b)  ), 归一下类,得到ans等于一个 (  s(i, a) - s(i, b)  ) - (  s(j, a) - s(j, b)  ). 所以我们只需要读入一个字符a,然后枚举那个字符b,在用上式计算答案,要保存前面的s(j, a) - s…
题意 '0'到'25'翻译成'a'到'z',故一个字符串可以有多种翻译方式,如12258有五种翻译方式. 给定字符串,输出有多少种翻译方式 解题思路 递归思想 计f(i)为以第i个字符开始到原字符串结尾的串可翻译的方式数. 则f(i)=f(i+1)+g(i,i+1)*f(i+2);其中g函数为判定i,i+1位置对应的两个字符连在一起是否在0-25范围内的函数,是则返回1,否则返回0. 用循环实现,由小及大,故从后向前遍历. 时间负责度O(n). 代码 #include <iostream> #…
4. 种树 (trees.pas/c/cpp) [问题描述] 一条街的一边有几座房子.因为环保原因居民想要在路边种些树.路边的地区被分割成块,并被编号为1..n.每个块的大小为一个单位尺寸并最多可种一棵树.每个居民想在门前种些树并指定了三个号码b,e,t.这三个数表示该居民想在b和e之间最少种t棵树.当然,b<=e,居民必须保证在指定地区不能种多于地区被分割成块数的树,即要求t<=e-b+1.允许居民想种树的各自区域可以交叉.出于资金短缺的原因,环保部门请你求出能够满足所有居民的要求,需要种树…
编写一个函数,其作用是将输入的字符串反转过来. 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A" //章节 - 数组和字符串 //四.双指针技巧 //1.反转字符串 /* 算法思想: 可以同时使用两个指针来完成迭代:一个从第一个元素开始,另一个从最后一个元素开…
1.背景 想要统计这一个字符串数组中每一个非重复字符串的数量,使用map来保存其key和value.这个需求在实际开发中经常使用到,我以前总是新建一个空数组来记录不重复字符串,并使用计数器计数,效率低下且麻烦,特此记录. 2.代码实现 public class test { public void makeEqual(String[] words) { Map<String,Integer> maps = new HashMap<>(); for (String str : wor…
String在内存中的分析: public class Demo { public static void main(String[] args){ String a = new String("xx"); //1.首先解释器在堆中的常量池中查找是否有xx变量,没有则创建.有就不在常量池中创建 //2.在堆中再创建一个对象xx;a中的地址指向它; //所以,new一个字符串.至少会创建一个对象.最多创建两个 String b = "xx"; //直接赋值.最多创建一…
[题目分析] 用height数组RMQ的性质去求最长的公共子串. 要求sa[i]和sa[i-1]必须在两个串中,然后取height的MAX. 利用中间的字符来连接两个字符串的思想很巧妙,记得最后还需要空一个位置避免冲突. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set>…
浏览以下内容前,请点击并阅读 声明 java有八种基本数据类型,其中包括: byte,字节型,是8位带符号的整数,即其范围在-128和127之间(包括) short,短整型,是16位带符号的整数,范围在-32768和32767之间(包含) int,整型,是32位带符号的整数,范围在-231到231-1之间(包含) long,长整型,是64位带符号的整数,范围在-263和263-1之间(包含) float,浮点型,单精度32位 double,双精度浮点型,64位 boolean,布尔型,只能为tr…
shell编程中,  在for, while循环中为什么不用(), {} 不是没有; 而是因为(), {}做了其他用途: (): 执行命令组, 注意这个命令组是新开一个子shell中执行, 因此,括号中的变量不能被脚本余下的部分使用.格式随意; 还有其他使用如: $(ls)... array=(a b c d) {}: 执行命令组, 事实上是创建了一个匿名函数,  但是这个跟()有区别: 大括号不会新开一个 子shell, 仍然是在当前shell中执行的命令组, 所以其中的变量可以为余下的脚本…
函数整理(T-SQL 版) 一.数学函数 1.求绝对值 ABS() 函数用来返回一个数值的绝对值. SELECT ABS(-5.38) AS absValue; 2.求指数 POWER()  函数是用来计算指数的函数.该函数接受两个参数,第一个参数为待求幂的表达式,第二个参数为幂. , -0.5) AS powerValue1, , ) AS powerValue2, , ) AS powerValue3; 3.求平方根 SQRT()  函数是用来计算平方根的函数.该函数接受一个参数,这个参数为…