博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer 43.左旋转字符串
阅读量:3913 次
发布时间:2019-05-23

本文共 1299 字,大约阅读时间需要 4 分钟。

43.左旋转字符串

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

思路一:

修正 n 的值后,让一个StingBuilder对象先后拼接 str 字符串中 n 之后的字符和 0 ~ n 之间的字符

1 public class Solution { 2     public String LeftRotateString(String str,int n) { 3         if(str == null || str.length() == 0){ 4             return str; 5         } 6         // 修正 n 的值 7         n %= str.length(); 8         // 将 0 - n - 1 为移到 n 为后面 9         StringBuilder sb = new StringBuilder();10         sb.append(str.substring(n, str.length()));11         sb.append(str.substring(0, n));12         return sb.toString();13     }14 }

简化写法

1 class Solution {2     public String reverseLeftWords(String s, int n) {3         4         n = n % s.length();    5         // 分成两部分,一部分是前k个字符,另一部分是后半段字符6         return s.substring(n, s.length()) + s.substring(0, n);7     }8 }

思路二:

修正 n 的值之后,让 str 再加上 一个str, 之后返回新 str 的 (n ~ len + n)之间的字符串

1 public class Solution { 2     public String LeftRotateString(String str,int n) { 3         if(str == null || str.length() == 0){ 4             return str; 5         } 6         // 修正 n 的值 7         n %= str.length(); 8         int len = str.length(); 9         str += str;10         return str.substring(n, len + n);11     }12 }

转载地址:http://ridrn.baihongyu.com/

你可能感兴趣的文章
.NET架构小技巧(2)——访问修饰符正确姿势
查看>>
一站式Web开发套件BeetleX.WebFamily
查看>>
工作这几年所获、所感、所悟
查看>>
不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!
查看>>
跟我一起学.NetCore之MediatR好像有点火
查看>>
.NET架构小技巧(4)——反射,架构人员法宝II
查看>>
让你变厉害的7个底层思维
查看>>
译 | 将数据从Cosmos DB迁移到本地JSON文件
查看>>
再被补刀!Flash又遭抛弃,你会怀念它吗?
查看>>
国产操作系统发展离不开人才和市场
查看>>
心想技术驱动业务,却在背道而驰
查看>>
SM2 国密算法被 Linux 内核社区接受
查看>>
日计不足涓滴成河-自定义响应结果格式化器
查看>>
.NET架构小技巧(3)——反射,架构人员法宝I
查看>>
对精致码农大佬的 [理解 volatile 关键字] 文章结论的思考和寻找真相
查看>>
.NET for Apache Spark 1.0 版本发布
查看>>
吐槽一下Abp的用户和租户管理模块
查看>>
. NET5正式版本月来袭,为什么说gRPC大有可为?
查看>>
初识ABP vNext(12):模块的独立运行与托管
查看>>
新版本 Swashbuckle swagger 组件中的 "坑"
查看>>