zoukankan      html  css  js  c++  java
  • PAT天梯赛L2-008 最长对称字符串

    题目链接:点击打开链接

    对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。

    输入格式:

    输入在一行中给出长度不超过1000的非空字符串。

    输出格式:

    在一行中输出最长对称子串的长度。

    输入样例:
    Is PAT&TAP symmetric?
    
    输出样例:
    11
    
    思路:可以用动态规划,可以用马拉车写。当时暴力写了,但是数组越界,崩了。下面暴力写法。

    AC代码:
    #include<iostream>
    #include<queue>
    #include<algorithm>
    #include<stack>
    #include<map>
    #include<string>
    #include<set>
    using namespace std;
    const int MAX = 1010;
    const int INF = 0X3f3f3f;
    
    
    int main() {
    	string s;
    	getline(cin, s);
    	int len = s.length();
    	int result = 1, x, y, ans;//result 不能设置为其他数,因为最小是自己本身“1”
    	//for(int i = 0; i < len; i++) 这样就越界了 
    	for(int i = 0; i < len - 1; i++) {
    		x = i;
    		y = i+1;
    		ans = 0;
    		while(s[x] == s[y] && x>=0 && y<len) {
    			x--;
    			y++;
    			ans += 2;
    		}
    		result = max(result, ans);
    	}
    	for(int i = 1; i < len - 1; i++) {//注意越界
    		x = i -1;
    		y = i + 1;
    		ans = 1;
    		while(s[x] == s[y] && x >= 0 && y <len) {
    			x--;
    			y++;
    			ans += 2;
    		}
    		result = max(ans, result);
    	}
    	cout << result; 
    	return 0;
    }


  • 相关阅读:
    java web spring challenge01
    eclipse的一个小失误
    创建线程的方式三:实现Callable接口。 --- JDK 5.0新增
    线程通信的应用:经典例题:生产者/消费者问题
    8.5 练习
    8.4 练习1
    LockTest.java
    DeadLock.java
    线程死锁
    使用同步机制将单例模式中的懒汉式改写为线程安全的
  • 原文地址:https://www.cnblogs.com/ACMerszl/p/9573005.html
Copyright © 2011-2022 走看看