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

  • 相关阅读:
    Hive学习小记-(4)带复杂集合类型及指定多分隔符hive建表
    nowcoder-shell篇(grep、awk、sed为主)
    剑指offer02-替换空格
    剑指offer67-剪绳子**
    爬虫5-Scrapy爬虫架构
    爬虫4-网站结构分析
    爬虫3-python爬取非结构化数据下载到本地
    项目创建
    项目框架搭建
    项目表结构
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13235059.html
Copyright © 2011-2022 走看看