剑指offer面试题42 翻转字符顺序 VS 左旋字符串

考察点

字符串遍历

知识点

题目

分析
类似这种题目只能观察元素特点找出规律确定算法了,像第一道题目翻转单词顺序,我们可以很容易的得到翻转每个字符后的的字符串,再仔细观察一下紧接着以空格为间隔分别翻转俩边的字符串就可以解这道题目了
第二题要求左旋字符串,同样首先翻转整个字符序列,然后以位数为间隔分别翻转俩边的字符序列即可解这道题目

public class FortyTwo {
	public static void main(String[] args) {
		String str = "i am student.";
		//reverse(str.toCharArray());
		String strA = "abcdefg";
		leftRotateString(strA.toCharArray(),2);
	}
	public static void leftRotateString(char[] str,int n) {
		if(str == null || str.length <= n) {
			return;
		}
		int firstStart = 0;
		int firstEnd = str.length - n - 1;
		int secondStart = firstEnd + 1;
		int secondEnd = str.length - 1;
		reverseCore(str,firstStart,secondEnd);
		reverseCore(str,firstStart,firstEnd);
		reverseCore(str,secondStart,secondEnd);
		System.out.println(new String(str));
	}
	public static void reverse(char[] str) {
		int start = 0;
		int end = str.length - 1;
		reverseCore(str,start,end);
		start = 0;
		end = 0;
		while(end < str.length) {
			if(str[end] == ' ') {
				reverseCore(str,start,end-1);
				end++;
				start = end;
			} else {
				end++;
			}
		}
		System.out.println(new String(str));
	}
	public static void reverseCore(char[] str,int start,int end) {
		while(start < end) {
			char tmp = str[end];
			str[end] = str[start];
			str[start] = tmp;
			start++;
			end--;
		}
	}
}

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-23 21:46:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-23 21:46:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-23 21:46:04       87 阅读
  4. Python语言-面向对象

    2024-03-23 21:46:04       96 阅读

热门阅读

  1. 《桥接模式(极简c++)》

    2024-03-23 21:46:04       39 阅读
  2. dubbo RandomLoadBalance的一点优化

    2024-03-23 21:46:04       39 阅读
  3. 面试算法-43-最长递增子序列

    2024-03-23 21:46:04       40 阅读
  4. 使用VisualStudio集成开发nodejs的addon项目

    2024-03-23 21:46:04       40 阅读
  5. 【Docker】Docker官方发布26.0.0社区版

    2024-03-23 21:46:04       33 阅读
  6. Docker 安装 CentOS7 系统

    2024-03-23 21:46:04       37 阅读
  7. 实验7-2-10 简易连连看(PTA)

    2024-03-23 21:46:04       34 阅读
  8. RESTful架构

    2024-03-23 21:46:04       38 阅读
  9. Vue复习

    Vue复习

    2024-03-23 21:46:04      37 阅读
  10. go 基础中的一些坑(2)

    2024-03-23 21:46:04       35 阅读
  11. 氧化铝电容的工艺结构原理及选型参数总结

    2024-03-23 21:46:04       41 阅读
  12. Python之functools模块之lru_cache

    2024-03-23 21:46:04       43 阅读
  13. 智能新纪元:AI大模型学习的奥秘与挑战

    2024-03-23 21:46:04       40 阅读
  14. 274. H 指数

    2024-03-23 21:46:04       35 阅读
  15. VMware Workstation17安装

    2024-03-23 21:46:04       45 阅读