题解 | #小红的字符串构造#

小红的字符串构造

https://www.nowcoder.com/practice/3e4b4dabc2e444e384c3ae62ac7dd84e

如果字符集里只有一种字符,那就没办法换成别的字符。
否则,我们将字符替换成字符集的下一位。

c++代码:

#include <iostream>
#include <string>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	string s;
	cin>>s;
	set<char> chk(s.begin(),s.end());
	vector<char> v(chk.begin(),chk.end());
	int m=v.size(),w;
	if(m==1)
	{
		cout<<"-1";
		return 0;
	}
	for(char &c:s)
	{
		w=find(v.begin(),v.end(),c)-v.begin();
		cout<<v[(w+1)%m];
	}
	return 0;
}

python代码:

s=input()
v=list(set(s))
m=len(v)
if(m==1):
    print(-1)
else:
    for i in s:
        w=v.index(i)
        print(v[(w+1)%m],end='')

java代码:

import java.util.*;
public class ZT6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s=sc.next();
        int n=s.length(),m,i,w;
        Set<Character> chk=new HashSet();
        for(i=0;i<n;++i)
            chk.add(s.charAt(i));
        ArrayList<Character> v=new ArrayList(chk);
        m=v.size();
        if(m==1)
            System.out.println(-1);
        else{
            for(i=0;i<n;++i){
                w=v.indexOf(s.charAt(i));
                System.out.print(v.get((w+1)%m));
            }
        }
    }
}
全部评论

相关推荐

无情咸鱼王的秋招日记之薛定谔的Offer:好拒信,偷了,希望有机会用到
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务