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

  • 相关阅读:
    js的this几种用法
    JS 事件绑定的几种方式 小笔记
    rem和em和px vh vw和% 移动端长度单位
    js 判断字符串中是否有某字符串
    angular2中的DOM操作之如何使input获取焦点
    angular2模板绑定样式
    论vw单位的实用性
    谷歌浏览器关闭同源策略方法
    video字幕无法显示,video视频在google中无法控制快进
    video视频铺满
  • 原文地址:https://www.cnblogs.com/jiyongjia/p/13235059.html
Copyright © 2011-2022 走看看