我们规定对一个字符串的shift操作如下:
来源:互联网 发布:如何评价赵薇事件 知乎 编辑:程序博客网 时间:2024/04/24 08:03
shift(“ABCD”,0)=”ABCD”
shift(“ABCD”,1)=”DABC”
shift(“ABCD”,2)=”CDAB”
换言之,我们把最左侧的N个字符剪切下来,按序附加到了右侧。
给定一个长为n的字符串,我们规定最多可以进行n次向左的循环shift操作。如果
shift(string,x)=string(0<=x< n),
我们称其为一次匹配(match)。求在shift过程中出现匹配的次数。
好了,题目叙述完毕
解题思路:
这里用了简单粗暴的方法,定义一个交换函数,进行按题所示的’shift’操作,把所有的结果记录在HashMap中,对应的value记录的是该字符串出现的次数,并在ArrayList中也记录一次,用于在最后的在Map中查找出现次数的依据。
代码如下:
import java.util.ArrayList;import java.util.HashMap;import java.util.Scanner;public class Main { public static void main(String[] args) { Main ss=new Main(); Scanner sc=new Scanner(System.in); System.out.println("请输入字符串:"); String s=sc.nextLine();//从键盘读取要处理的字符串 int max=0;//匹配次数 HashMap<String,Integer>hm=new HashMap<String,Integer>(); ArrayList<String>list=new ArrayList<String>(); for(int i=0;i<s.length();i++) { String temp=ss.swap(s, i); if(hm.containsKey(temp)){//如果map中已经包含该单词,则将其个数+1 int x = hm.get(temp); x++; hm.put(temp, x); }else{ //如果map中没用包含该单词,代表该单词第一次出现,则将其放入map并将个数设置为1 hm.put(temp, 1); list.add(temp); } } for(String xx:list)//对字符串所有可能出现的左移效果进行遍历,记录最大匹配次数 { int i=hm.get(xx); if(i>max) max=i; } System.out.println(max); sc.close();//关闭流 } public String swap(String str,int num)//把一个字符串按题目要求左移并返回 { String s1=str.substring(num, str.length()); StringBuffer result=new StringBuffer(s1); result.append(str.substring(0, num)); return result.toString(); }}
按照题示,输入byebyebye,输出3
0 0
- 我们规定对一个字符串的shift操作如下:
- eclipse debug 插入数据库规定能时 crtl+shift+i 的一个坑
- 确定一个字符串在规定的字符串中的行列位置
- 定义一个长度大于5,包含字符‘@’的字符串,完成如下操作......(foreach及各种函数的用法)
- 对字符串的操作
- 对字符串的操作
- 对字符串的操作
- 对字符串的操作
- 对字符串的操作
- 给定一个源串和目标串,能够对源串进行如下操作:
- shift后门的一个分析
- 输出一个字符串中含有所规定的字符子串的数量
- 对字符串操作的javabean
- C#对字符串的操作
- 对字符串的操作总结
- C#对字符串的操作
- 对 字符串 的扩展操作
- sap对字符串的操作
- opencv中的waitKey(0)不起作用
- 指针数组与数组指针详解
- debug版lib静态库
- 数据结构实验之链表七:单链表中重复元素的删除
- NSString常见使用方法
- 我们规定对一个字符串的shift操作如下:
- codevs 1033 蚯蚓的游戏问题----费用流
- 4、RIOT操作系统中 CC2538的编译和GPIO
- 防止表单重复提交的八种简单有效的策略
- 编译和链接的区别、makefile怎么写
- codevs 1018 单词接龙
- Linux IO调度算法
- 将Carte部署为Windows服务
- SQLServer的基础SQL语句和例子