zoukankan      html  css  js  c++  java
  • 给定一个字符串,问是否能通过添加一个字母将其变为回文串

    思路:两个指针,一个从左往右,一个从右往左,只能跳过一次,第二次的时候及说明需要添加两个字符

    include "stdafx.h"

    #include<iostream>  
    
    #include<string>
    using namespace std;
    
    
    int main()
    {
    	string str;
    	while (cin>>str)
    	{
    	
    		bool flag = true;
    		bool move = true;
    		int left = 0;
    		int right = str.length() - 1 ;
    		
    		while (left< str.length() / 2 && right>= str.length() / 2)
    		{ 
    			if (str[left] == str[right])
    			{
    				left++;
    				right--;
    			}
    			else if (right - 1 >= 0 && str[left] == str[right - 1] && move==true)
    			{
    				right--;
    				move = false;
    			}
    			else if (left + 1 >= 0 && str[left+1] == str[right ] && move == true)
    			{
    				left++;
    				move = false;
    			}
    			else
    			{
    				flag = false;
    				break;
    			}
    			
    		}
    		if (flag == false)
    		{
    			cout << "NO" << endl;
    		}
    		else 
    		{
    			cout << "YES" << endl;
    		}
    		
    		
    
    	}
    
    	return 0;
    }
  • 相关阅读:
    随笔
    我的舅舅
    代码规范
    SpringMVC_乱码问题
    SpringMVC_接受请求及数据回显
    Restful风格
    第六周总结
    SpringMVC_控制器
    SpringMVC_初次使用
    SpringMVC_简介
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6556130.html
Copyright © 2011-2022 走看看