招商银行信用卡中心21届实习笔试编程题

第一题 镜像字符串

给一个序列x,如果x和它的逆序列y的每一位都是镜像关系,则输出“yes”否则输出“no”
1镜像1,2镜像5,3镜像8,4镜像7,6镜像9。

输入:

3
69
6996
1111

输出

yes //69和96是
no   //6996和6996不是 因为6必须对应9 
yes //1111和1111是 1和1对应

思路:就是用StringBuilder直接逆序,然后逐位比较即可…不知道为什么很多人没a
一开始我只a了0.1,因为StringBuilder反转的时候不是生成新对象而是把原来的翻转然后返回,后来idea调试发现了

import java.util.Scanner;

public class Main {
   

    public static void main(String[] args) {
   
        Scanner scanner = new Scanner(System.in);
        //获取输入的行数
        int n = scanner.nextInt();
        //解决输入格式问题
        scanner.nextLine();
        //逐个处理
        for(int i=0;i<n;i++){
   
            String input = scanner.nextLine();
            //原字符串
            StringBuilder oriSB = new StringBuilder(input);
            //翻转后字符串
            StringBuilder revSB = new StringBuilder(input).reverse();
            //定义boolean值表示是否镜像 初始true
            boolean b=true;
            //逐位判断 因为要全部满足 一个不满足可跳出
            for(int j=0;j<oriSB.length();j++){
   
                char c1 = oriSB.charAt(j);
                char c2 = revSB.charAt(j);
                if(c1=='1'&&c2!='1'){
   //一个为1,另一个必须为1,下同
                    b=false;
                    break;
                }else if(c1==
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值