判断回文字符串(给定开始位置和字符个数)
来源:互联网 发布:死侍 知乎 编辑:程序博客网 时间:2024/06/07 05:12
介绍:
一个字符串从前往后读和从后往前读得到的是同样的字符串,这就是回文字符串。求一个字符串,从k开始,长度为L的字符串是否为回文字符串
分析:
1.直接截取从k开始长度为L的字符串 2.对这个字符串进行遍历,判断首尾是否相同,如果相同则继续遍历,有一个不同就返回false。
实现:
public class 回文字符串 { public static void main(String[] args) { System.out.print("该子段是否为回文字符串?答案:"+judgeHuiWen1("abbba",0,5)); } //方法1 private static boolean judgeHuiWen1(String str, int start, int length) { char arr[] = str.toCharArray(); int end = start + length -1; if(start>str.length()||(start+length)>str.length()){//这里是对不合法输入的处理 System.out.println("输入的参数有问题"); return false; } //遍历整个字符串 for(int i=0;i<length;i++){ //当开始位置大于等于结束位置时,就说明已经遍历完毕,因为一个从头往后走,一个从后往前走。到中间就没必要再继续循环了。节约资源。 if(start>=end){ break; } //当arr[start]等于arr[end]的时候,就需要start++,end--,然后继续循环 if(arr[start] == arr[end]){ start++; end--; continue; }else if(arr[start]!=arr[end]){ return false; } } return true; } //方法2,和方法1差不多,只是方法1用的数组下标来获取字符,方法2用的字符串的charAt方法获取字符,原理相同。 private static boolean judgeHuiWen2(String str,int start,int length){ String newstr = str.substring(start,start+length); int len = newstr.length(); for(int i=0;i<len;i++){ char a = newstr.charAt(i); char b = newstr.charAt(len-1); if(i>=len){ break; } if(a == b){ len--; continue; }else if(a != b){ return false; } } return true; }
总结:
我记得之前做过一道蓝桥杯的练习题,说是:求四到五位的回文数,并且各个位数的和为1-54之间的值。 我当时特别笨,因为不知道charAt这个方法,所以我疯狂的用for循环来嵌套,到最后我套了6层for循环,而且还没做出来。后来请教别人,知道了charAt()这个方法,只需要几行代码就可以实现。 所以还是得多看看api,没准里面的哪个方法可以直接解决我们的问题。
0 0
- 判断回文字符串(给定开始位置和字符个数)
- 判断给定的一串字符是否为“回文”。所谓“回文”是指顺读和倒读都一样的字符串。
- 判断给定字符串(包含标点符号和空格)是否为回文
- 判断给定字符串是否为回文串
- 动态规划求回文---给定字符串,插入字符形成回文
- 输入一段字符,判断字符串中字母的个数,数字的个数和其他字符个数
- 腾讯 2017 暑假实习生编程题(一):给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
- 判断字符,字符串的个数
- 给定一个字符串,确定它是否是回文,只考虑字母数字字符和忽略大小写。
- 判断给定的字符串是否是回文数(用栈实现)
- 字符串回文和数字回文判断
- 字符串中字符组成的回文字符串最小个数
- JAVA 高效判断字符串的字符个数
- 判断字符串中中文字符的个数
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
- 给定一个字符串a,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长? 输出需要删除的字符个数。
- 判断一个字符串中数字,字符,空格和其他字符的个数
- SQL判断字符在字符串中的位置
- 一些软件助手
- linux mysql忘记密码后如何修改密码
- 解决VS中没有ADO.NET实体数据模型
- 利用SSH 或 Teamviewer 控制远程服务器
- java 垃圾收集相关常用参数
- 判断回文字符串(给定开始位置和字符个数)
- 文章标题
- POJ 1939 Diplomatic License G++
- Spring @Autowired和@Qualifier注解
- 关于springmvc返回到前台报406错误与404错误的解决
- CoordinatorLayout显示隐藏ToolBar
- Mysql笔记
- java基础知识,一些概念的区别总结
- 内存管理-SLAB(SLAB的基本数据结构)