ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用Java实现寻找一个字符串中最长的对称字符串

2021-04-27 23:35:39  阅读:545  来源: 互联网

标签:Java int strLength length 字符串 对称 leftIndex


使用JAVA实现寻找一个字符串中最长的对称字符串:

如输入字符"121a123321",返回"123321".   实现代码:

 1 import org.junit.Test;
 2 
 3 public class MirroString {
 4     public  String getMaxMirroString(String s){//找出字符串中最长的对称字符串的方法
 5 
 6         if (s!=null||s.length() != 0) {
 7             int length = s.length();
 8             
 9             for (int strLength = length; strLength>1; strLength--){//控制检验对称字符串的长度
10                 int rightIndex = strLength-1;//作为右索引
11                 
12                 for(int leftIndex = 0; leftIndex <= s.length() - strLength; leftIndex++,rightIndex++){//左右索引右移
13                     int couple = s.substring(leftIndex,rightIndex+1).length()/2;//字符串整除2的值
14                     int count = 0;//数字符串中对称字符的对数
15                     
16                     for(int l = leftIndex,r = rightIndex; l<r; l++,r--) {//从外向内检索字符串左右字符
17                             if (s.charAt(l) == s.charAt(r)) {
18                                 count++;//字符串中对称的字符对数
19                             }
20                         }
21                     
22                     if (count == couple){//判断字符串是否完全对称
23                         return s.substring(leftIndex,rightIndex+1);
24                     }
25                 }
26             }
27             return "无对称字符";
28         }else return "字符串为空";
29     }
30 
31     @Test
32     public void Test(){//验证
33         MirroString mS = new MirroString();
34         System.out.println( mS.getMaxMirroString("abadefgfe"));
35         System.out.println(mS.getMaxMirroString("11221454"));
36         System.out.println(mS.getMaxMirroString("21221"));
37     }
38 
39 }

 

 

 

某次笔试题中迟迟无法做出,现在终于稀里糊涂做出来.希望有大神给出好的解法.

 

标签:Java,int,strLength,length,字符串,对称,leftIndex
来源: https://www.cnblogs.com/DYMb/p/14711233.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有