zoukankan      html  css  js  c++  java
  • 某书2018提前批笔试题之翻转字符串

    一、题目

      将每2k个字符的前k个翻转;如果少于k,则翻转全部字符;如果多于k少于2k,则翻转前k个,剩余保持不变。
    二、思路

      递归2k个字符串

    三、代码

    package redbook;
    
    import java.util.*;
    
    public class Main1 {
        public static void main(String[] args) {
            //输入字符串
            Scanner in = new Scanner(System.in);
            while (in.hasNext()) {
                String str = in.nextLine();
                int k = in.nextInt();
                String result = revs(str, k);
                System.out.println(result);
            }
            in.close();
        }
    
    
        public static String revs(String str, int k) {
            int len = str.length();
    
            //String转换成SStringBuffer
            StringBuffer sb = new StringBuffer();
            sb.append(str);
    
            //如果k=0,直接返回结果
            if (k == 0) {
                return str;
            }
    
            //分字符串长度<=k,>k&&<2*k,>=2k三种情况讨论
            if (len <= k) {
                sb.reverse();
                return sb.toString();
            } else if (len > k && len < 2 * k) {
                StringBuffer sb2 = new StringBuffer();
                String tempStr1 = sb.substring(0, k);
                sb2.append(tempStr1);
                sb2.reverse();
                String tempStr2 = sb.substring(k, len);
                sb2.append(tempStr2);
                return sb2.toString();
            } else if (len >= 2 * k) {
                StringBuffer sb3 = new StringBuffer();
                String tempStr3 = sb.substring(0, k);
                sb3.append(tempStr3);
                sb3.reverse();
                String tempStr4 = sb.substring(k, 2 * k);
                sb3.append(tempStr4);
                String tempStr5 = sb.substring(2 * k);
                return sb3.append(revs(tempStr5, k)).toString();
            }
            return str;
        }
    }  
    View Code

    --------------------------------------------

    参考链接:

    http://blog.csdn.net/yingzizizizizizzz/article/details/75452291

  • 相关阅读:
    hdoj Last non-zero Digit in N! 【数论】
    spin_lock &amp; mutex_lock的差别?
    20140514,微软5月14日公布8个安全补丁
    教你用笔记本破解无线路由器password
    SSL工作原理
    MS-SQLSERVER中的MSDTC不可用解决方法
    grub2手动引导ubuntu
    用递归翻转一个栈 Reverse a stack using recursion
    腾讯面试
    AngularJS移动开发中的坑汇总
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/7722209.html
Copyright © 2011-2022 走看看