`
1140566087
  • 浏览: 559240 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18534
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314141
Group-logo
J2ME 基础学习课程集
浏览量:18748
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17581
社区版块
存档分类
最新评论

字符串处理 镜像对称 中心对称

阅读更多
package com;

public class Snippet {    
//	    串“abcba”以字母“c”为中心左右对称;串“abba” 是另一种模式的左右对称。这两种情况我们都称这个串是镜像串。
//	特别地,只含有1个字母的串,可以看成是第一种模式的镜像串。 
//	
//	    一个串可以含有许多镜像子串。我们的目标是求一个串的最大镜像子串(最长的镜像子串),如果有多个最大镜像子串,
//	对称中心靠左的优先选中。例如:“abcdeefghhgfeiieje444k444lmn”的最大镜像子串是:“efghhgfe”
//	
//	    下面的静态方法实现了该功能,请仔细阅读并分析代码,填写空白处的代码,使得程序的逻辑合理,结果正确。
//	
	// 求最大(长度最大)镜像对称子串
	public static String getMaxMirrorString(String s)
	{
		String max_s = "";  // 所求的最大对称子串   --  保存 的是最大的子串
	
		for(int i=0; i<s.length(); i++)	// s 表示的是字符串
		{
			// 第一种对称模式	中心
			int step = 1;
			try{
				for(;;)
				{
					if(s.charAt(i-step) != s.charAt(i+step)) break;
					step++;
				}
			}catch(Exception e){}
			
			String s1 = s.substring(i,i+step);     
			
			
			// 第二种对称模式
			step = 0;
			try{
				for(;;)
				{
					if(s.charAt(i-step) != s.charAt(i+step+1)) break;    
					step++;
				}
			}catch(Exception e){}
			
			String s2 = s.substring(i-step+1,i+step+1);
			
			
			if(s1.length() > max_s.length()) max_s = s1;
			if(s2.length() > max_s.length()) max_s = s2;
		}
		
		return max_s;				
	}
	public static void main(String[] args){
		System.out.println(getMaxMirrorString("abcdeefghaahgfeiieje444k444lmn"));
	}
	
}
0
3
分享到:
评论

相关推荐

    字符串处理- 单模式匹配- MP 算法与 KMP 算法.rar

    在计算机科学领域,字符串处理是数据处理的重要组成部分,特别是在文本搜索、信息检索和文本分析等应用中。单模式匹配算法是解决字符串问题的关键技术之一,主要用于在一个大文本(主串)中查找是否存在一个已知的...

    判断字符串是否“回文”

    - 使用一个`for`循环遍历字符串的一半长度,通过`if`语句检查当前字符和其镜像位置的字符是否相等。如果相等,则继续下一次循环;如果不等,则立即跳出循环。 - 循环结束后,检查循环变量`i`是否等于字符串长度的...

    异质字符串中的GUT标度统一

    四维手性异质真空是指在四维时空中的真空态,并且该真空具有手性,即与时空的镜像对称性有关。在文中作者提出的方法允许在异质字符串理论框架下实现能量尺度的统一,即把能量尺度的统一降低到GUT标度,这是统一电磁...

    镜面对称72312.ppt

    6. **编程语言的镜像特性**:某些编程语言如Python,可以利用切片操作创建字符串或列表的镜像,这是通过索引的负数表示实现的。 为了深入理解镜面对称,我们需要了解以下概念: - **对称轴**:图像或形状的中心线,...

    C 代码 将 Atbash 替换密码应用于文本字符串atbash.rar

    函数如`strlen()`用于获取字符串长度,`strcpy()`和`strcat()`用于字符串复制和连接,而`for`循环则用于逐个字符地进行替换操作。 数学在这个问题中主要体现在对字母位置的计算上。由于Atbash加密是基于字母表的...

    超保形代数,用于扭曲和和和G 2镜像对称

    通过紧密结合最新的扭曲连接和G 2完整流形的数学构造,我们将Odake和自由形代数结合起来,实现了用于G 2字符串紧缩的Shatashvili-Vafa超保形代数。 通过考虑这种实现的自同构,我们确定了Braun和Del Zotto为这些流形...

    华为机试题目总结

    20. 判断回文:考察对字符串对称性的判断。 21. 判断字符串回文:同上,是另一个形式的回文判断问题。 22. 求字符串中最大回文子串:考察对字符串中回文子串搜索算法的实现。 23. 找出^n的数:涉及数学的幂运算和...

    蓝桥杯省赛无忧班(Java 组) - 带源码课件.7z

    3. 镜像串与代码填空:镜像串是指以某个字符为中心,两侧字符镜像对称的字符串。在Java编程中,需要编写算法来找到给定字符串中的最长镜像子串。这是一个字符串处理的问题,涉及到字符串遍历、子串提取和比较的算法...

    蓝桥杯-作业2-版本1.docx

    题目要求计算一个给定字符串失去镜像对称性的最少种子脱落数量。可以通过比较字符串首尾字符,如果相等则继续向内比较,若不等则增加脱落计数并尝试从两侧继续比较。给出的代码中定义了一个函数`f`来实现这个过程。...

    回文数是指正读和反读都相同的数.docx

    直接比较:将数字转换为字符串,然后比较其反转后的字符串与原字符串是否相同。 数学方法:不转换为字符串,而是利用数学运算来判断。例如,可以通过不断提取数字的末位并将其与首位进行比较(同时移除已比较的部分...

    波形函数,可积分性和开放字符串

    最近已经推测,可以通过将它们的WKB扩展与开放拓扑弦波函数相结合来获得量子镜像曲线的确切本征函数。 在本文中,我们为这个猜想提供了进一步的证据。 我们在各种几何形状中,在所谓的最大超对称情况下,给出了波...

    微软面试题

    - **回文检测**:比较字符串与其反转后的结果是否相同,或者只比较字符串的前半部分与后半部分是否镜像对称。 - **循环移位**:可以通过字符串拼接的方式实现循环移位,或者使用数组来模拟字符串的移动。 #### 二、...

    蓝桥杯Java

    3. 镜像串与代码填空:镜像串是指以某个字符为中心,两侧字符镜像对称的字符串。在Java编程中,需要编写算法来找到给定字符串中的最长镜像子串。这是一个字符串处理的问题,涉及到字符串遍历、子串提取和比较的算法...

    第三届蓝桥杯软件类决赛真题(Java本科).pdf

    镜像子串是指中心对称的字符串,如“abcba”。 **知识点解析:** 1. **字符串操作**:涉及到字符串的基本操作,如 `charAt()` 获取指定位置的字符,`substring()` 截取子串等。 2. **循环结构**:利用循环遍历字符...

    leetcode打不开-EXAM2README:LeetCode问题的自述文件

    E:首先,为了降低时间复杂度,我们可以考虑将子回文居中放在字符串的中间,因为它在其中心镜像。 将子回文居中将同时从两侧读取字符串以检查对称性,从而缩短读取字符串的时间。 A: 这个算法是为了检查单词两端的...

    回形数_回形数_

    在编程中,回形数的检测通常用于教学和算法练习,它涉及到字符串处理和位操作等基础知识。下面我们将深入探讨回形数的概念、检测方法以及相关的编程技巧。 首先,理解回形数的基本性质是关键。一个回形数可以是任意...

    1_leetcode刷题指南.pdf

    - **对称二叉树**:需要判断树是否是镜像对称的。 - **路径总和**:涉及深度优先搜索(DFS)和回溯算法。 ### 回溯类 回溯类问题主要集中在解决排列组合类问题。 - **子集**:使用回溯法生成组合数。 - **组合总数*...

Global site tag (gtag.js) - Google Analytics