zoukankan      html  css  js  c++  java
  • [编程题] 字符串成环判断是否为回文字符串--字节跳动笔试题

    字符串成环判断是否为回文字符串

    题目描述

    输入一个字符串,将该字符串首尾成环,判断能否从中某位置切分,然后产生回文字符串,是则输出Yes,否则输出No

    示例

    例如1:

    输入(字符串)
    aab
    成环后从a a 中切分,得到回文字符串:
    aba
    输出:Yes
    

    Java代码

    package ncompanydemos.p2_bytedance;
    
    import java.util.Scanner;
    
    /**
     * @author jiyongjia
     * @create 2020/7/4 - 15:03
     * @descp: 输入一个字符串,将该字符串首尾成环,判断能否从中某位置切分,然后产生回文字符串
     *
     * 例如:aba 成环后从a a 中切分,得到回文字符串 aba 输出Yes,是回文字符串
     */
    public class Exam02 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String s = scanner.nextLine();
            //调用
            String res = solve(s);
            System.out.println(res);
        }
    
        public static String solve(String s){
            char[] chars = s.toCharArray();
    
            for (int i = 0; i < chars.length; i++) {
                int length = chars.length;
                StringBuilder stringBuilder = new StringBuilder();
                int cur=i;
                while (length>0){
                    stringBuilder.append(chars[cur%(chars.length)]);
                    cur++;
                    length--;
                }
                //调用回文判断
                boolean compare = compare(stringBuilder.toString());
                if (compare){
                    return "Yes";
                }else {
                    continue;
                }
            }
            //如果判断完还是没有回文的,返回No
            return "No";
        }
    
        //字串回文判断
        private static boolean compare(String s) {
            char[] chars = s.toCharArray();
            int left = 0;
            int right = chars.length-1;
            int flag = chars.length/2;
            while (flag>0){
                if(chars[left]!=chars[right]){
                    return false;
                }else {
                    left++;
                    right--;
                    flag--;
                }
            }
            return true;
        }
    }
    
    

    测试输出

    测试1

    image-20200704152916012

    测试2

    image-20200704152934691

  • 相关阅读:
    怎么样从多列的DataTable里取需要的几列
    .net core 生成二维码
    sql server2012卸载
    github实用的搜索小技巧
    c# 中的索引
    IOC
    Python基础-while
    Python基础-判断闰年
    Python基础-while奇数和
    Python基础-奇偶判断调用函数
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13235059.html
Copyright © 2011-2022 走看看