反转字符串 反转字符串 || 反转字符串 |||

这篇具有很好参考价值的文章主要介绍了反转字符串 反转字符串 || 反转字符串 |||。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思想总结:首先将字符串转变为字符数组,再进行遍历并反转字符。

1.反转字符串

反转字符串 反转字符串 || 反转字符串 |||,LeetCode,java,算法,leetcode

 代码:

class Solution {
    public void reverseString(char[] s) {
        reverse(s,0,s.length); //左闭右开
    }

    public static void reverse(char[] ch,int i,int j) { 翻转函数
        
        j = j-1;
        while(i<j) {
            char tmp = ch[i];
            ch[i] = ch[j];
            ch[j] = tmp;
            i++;
            j--;
        }
         
    }
}

2.反转字符串 ||

反转字符串 反转字符串 || 反转字符串 |||,LeetCode,java,算法,leetcode

代码:文章来源地址https://www.toymoban.com/news/detail-697622.html

class Solution {
    public String reverseStr(String s, int k) {
        char[] arr = s.toCharArray();  //先将字符串 转换为 字符数组
        for(int i=0;i<s.length();i+=2*k) {
            if(i+k <= s.length()) {   //剩余的字符个数肯定大于k
                reverse(arr,i,i+k);  //左开右闭

            }else{
                reverse(arr,i,s.length()); //左开右闭 剩余字符少于k个的情况
            }   
        }

        return new String(arr);
    }

    public static void reverse(char[] ch,int i,int j) { //翻转函数
        j = j-1;
        while(i<j) {
            char tmp = ch[i];
            ch[i] = ch[j];
            ch[j] = tmp;
            i++;
            j--;
        }

    }
}

3.反转字符串中的单词 |||

可以双指针 也可以用栈来做

反转字符串 反转字符串 || 反转字符串 |||,LeetCode,java,算法,leetcode

代码:

class Solution {
    /* 
    //第一种 双指针
    public String reverseWords(String s) {
        char[] ch = s.toCharArray();
        int left = 0;  //  left保存每一次翻转的最开始位置
        int right=0;   //  right 保存每一次反转的结束位置

        for(;right<ch.length;right++) {
            if(ch[right]==' ') {
                reserve(ch,left,right);   //左开右闭
                left = right+1;
            }
        }
        reserve(ch,left,right);   //翻转最后一组字符串



        return new String(ch);  //字符数组转换为字符串
    }
    public static void reserve(char[] ch,int i ,int j) {  //自定义翻转函数
        j = j-1;
        while(i<j) {
            char tmp = ch[i];
            ch[i] = ch[j];
            ch[j] = tmp;
            i++;
            j--;
        }
    }*/


    //2. 用栈来做
    public String reverseWords(String s) {

        Stack<Character> stack = new Stack<>();
        char[] ch = s.toCharArray();
        StringBuilder sb = new StringBuilder();

        for(int i = 0;i<ch.length;i++) {
            if(ch[i]!=' ') {
                stack.push(ch[i]);
            }else{
                while(!stack.isEmpty()) {
                    sb.append(stack.pop());
                }
                sb.append(' ');
            }
        }
        while(!stack.isEmpty()) {
                    sb.append(stack.pop());
                }

        return sb.toString();
    }


}

到了这里,关于反转字符串 反转字符串 || 反转字符串 |||的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ​LeetCode解法汇总344. 反转字符串

    https://github.com/September26/java-algorithms 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组  s  的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。 示例 1: 示例 2: 提示: 1 = s.length = 105

    2024年02月14日
    浏览(49)
  • 【leetcode】541. 反转字符串 II

    给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 解答:

    2024年02月15日
    浏览(39)
  • leetcode-344. 反转字符串、9. 回文数

    题目1: 解题方法 直接用reverse()即可 代码: 如果不用考虑改变原列表的话,还有一个方法: s[ : :-1] (字符串也可用此方式进行反转) 题目2:9. 回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)

    2024年01月17日
    浏览(37)
  • 【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

    题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须 原地修改 输入数组,即不能新建一个数组来完成字符串的反转。我们注意到: 原来下标为0的,反转后是size - 1【原来下标是size - 1的,反转后是0】; 原来下标是1的,反转后是size - 2【原来下标是size -2的,反转后

    2024年02月11日
    浏览(45)
  • 【代码随想录 | Leetcode | 第十一天】字符串 | 反转字符串 | 反转字符串 II | 替换空格 | 反转字符串中的单词 | 左旋转字符串

    欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来字符串~反转字符串 | 反转字符串 II | 替换空格 | 反转字符串中的单词 | 左旋转字符串的分享 ✨ ✨题目链接点这里 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要

    2024年02月15日
    浏览(52)
  • leetcode 151. 反转字符串中的单词

             这道题全面考察了字符串的一些操作,这里我的思路是: 先对字符串进行空格去除操作,这里要注意一个细节:先用for循环去除连续空格,再用if判断开头和结尾的空格。 再对没有异常空格的s 做一个反转操作。 再对每一个单词进行反转。 接下来先复习一下strin

    2024年02月09日
    浏览(55)
  • 【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符

     作者:小卢   专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》 目录  917. 仅仅反转字母  387. 字符串中的第一个唯一字符 917. 仅仅反转字母  题目描述: 给你一个字符串  s  ,根据下述规则反转

    2023年04月12日
    浏览(61)
  • Leetcode 557 反转字符串中的单词 III 简单

    给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 1. 原题链接 Leetcode 557 反转字符串中的单词 III 简单 2. 题目要求 示例 1: 输入:s = “Let’s take LeetCode contest” 输出:“s’teL ekat edoCteeL tsetnoc” 示例 2: 输入: s = “God Ding”

    2024年02月07日
    浏览(50)
  • leetcode每日一题Day2——344. 反转字符串

    ✨ 博主: 命运之光   🦄 专栏: 算法修炼之练气篇(CC++版) 🍓 专栏: 算法修炼之筑基篇(CC++版) 🐳 专栏: 算法修炼之练气篇(Python版) ✨ 博主的其他文章: 点击进入博主的主页   前言:欢迎来到这个LeetCode每日算法题专栏! 🌊 无论你是编程新手还是有一定经验

    2024年02月14日
    浏览(51)
  • LeetCode 75 第五题(345)反转字符串中的元音字母

    给一个字符串,将里面的元音字母反转,并且保持非元音字母不变(包括顺序). 字符串反转类型的题,我们都可以使用双指针来解决:定义首尾指针,分别向中间靠拢,直到首尾指针都指向了元音字母,然后交换首尾指针所指的字母,如此不会影响到非元音字母,同时也将元音字母反转了

    2024年02月16日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包