700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 怎么把i am a student逆置成student a am i?面试题逆置字符串讲解

怎么把i am a student逆置成student a am i?面试题逆置字符串讲解

时间:2024-04-11 14:19:41

相关推荐

怎么把i am a student逆置成student a am i?面试题逆置字符串讲解

逆置字符串

一、题目描述二、解题思路三、完整代码四、运行结果

一、题目描述

字符串逆置,如 “I am a student” 逆置为 "student a am I"

二、解题思路

1、逆序整个字符串

2、逆序每个单词

/*** 用来逆序一个整体,可以是单词也可以是整个数组* @param c* @param i* @param j*/public static void reverse (char c[],int i,int j){//设下标i,j表示逆序的开头和结尾while (i<j){char tmp=c[i];c[i]=c[j];c[j]=tmp;i++;j--;}}

由reverse方法我们逆序了整个字符串,接下来逆置每个单词

//2、每个单词逆序int start=0;for (int i = 0; i < c.length ; i++) {//当i自己是空格的时候,就说明她前面的是一个整体单词了//比如 i am a student 当i走到4下标的时候,am就是一个单词,逆置它if(c[i]==' '){reverse(c,start,i-1);start=i+1;}}

三、完整代码

public static void reverse (char c[],int i,int j){while (i<j){char tmp=c[i];c[i]=c[j];c[j]=tmp;i++;j--;}}public static void reverseStr(String s){//去除字符串开头的空格s= s.trim();//1、整体逆序//先转换整数组char []c= s.toCharArray();reverse(c,0,c.length-1);//2、每个单词逆序int start=0;for (int i = 0; i < c.length ; i++) {//当i自己是空格的时候,就说明她前面的是一个整体单词了//比如 i am a student 当i走到4下标的时候,am就是一个单词,逆置它if(c[i]==' '){reverse(c,start,i-1);start=i+1;}}System.out.println(c);}

四、运行结果

如果大家还想多做一些leetCode或者剑指offer的题的话,可以看看我之前的文章,难度简单,适合入门。

三种方法任君挑选 LeetCode_136只出现一次的数字

什么?动态规划10行求出连续子数组的最大和 剑指offer-42讲解

剑指 Offer 39. 数组中出现次数超过一半的数字 简单易懂14行搞定 。人人皆可会

二叉树的层序遍历原理+LeetCode真题练习

LeetCode 24:两两交换链表中的节点,1662. 检查两个字符串数组是否相等

LeetCode 第二十一题

剑指 Offer 58 - II. 左旋转字符串的三种解法一起看看吧!!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。