zoukankan      html  css  js  c++  java
  • 回文串的题解

    给定一个由 a-z 和*组成的字符串,其中*可以被替代成任何 a-z 中的字符。
    询问将*替换后字典序最小的回文字符串,无解输出-1。

    尺取好啊!

    22 边往中间扫。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    template<typename T>inline void read(T &FF){
    	T RR=1;FF=0;char CH=getchar();
    	for(;!isdigit(CH);CH=getchar())if(CH=='-')RR=-1;
    	for(;isdigit(CH);CH=getchar())FF=(FF<<1)+(FF<<3)+(CH^48);
    	FF*=RR;
    }
    template<typename T>inline void write(T x){
    	if(x<0)putchar('-'),x*=-1;
    	if(x>9)write(x/10);
    	putchar(x%10+48);
    }
    template<typename T>inline void writen(T x){
    	write(x);
    	puts("");
    }
    string st;
    void work(int l,int r){
    	if(st[l]=='*'){
    		if(st[r]=='*')st[l]=st[r]='a';
    		else st[l]=st[r];
    	}else{
    		if(st[r]=='*')st[r]=st[l];
    		else if(st[l]!=st[r]){
    				puts("-1");
    				exit(0);
    			}
    	}
    }
    int main(){
    	cin>>st;
    	int n=st.size();
    	st=' '+st;
    	int l=1,r=n;
    	while(l<=r){
    		work(l,r);
    		l++;r--;
    	}
    	for(int i=1;i<=n;i++)cout<<st[i];
    	return 0;
    }
    
  • 相关阅读:
    转:【实用教程】阿里云服务器的配置和使用
    C# 定制错误页面
    C# Session进程外存储
    NOIP200101数的计算
    周末舞会
    queue 队列
    信息学作文
    求三个数的平均数
    Hello world
    Django-Form组件-forms.Form
  • 原文地址:https://www.cnblogs.com/zhaohaikun/p/12816940.html
Copyright © 2011-2022 走看看