代码编织梦想

【LeetCode】字符串变形

前路漫漫亦灿灿

请返回变形后的字符串。题目保证给定的字符串均由大小写字母和空格构成。

输入:
"This is a sample",16
返回值:
"SAMPLE A IS tHIS"
输入:
"nowcoder",8
返回值:
"NOWCODER"
输入:
输入:
"iOS",3
返回值:
"Ios"

Java

package cn.com.codingce.数组与矩阵.字符串变形;


public class Solution {

    public static void main(String[] args) {
        System.out.println(new Solution().trans("This is a sample", 16));
    }

    public void reverseArr(char[] arr, int i, int j) {
        // 双指针左右滑动
        int left = i;
        int right = j;
        while (left < right) {
            char temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
            left++;
            right--;
        }
    }

    public String trans(String s, int n) {
        char[] str = s.toCharArray();
        for (int i = 0; i < n; i++) {
            char temp = str[i];
            if (temp >= 'A' && temp <= 'Z') str[i] = (char) (str[i] - 'A' + 'a');
            if (temp >= 'a' && temp <= 'z') str[i] = (char) (str[i] - 'a' + 'A');
        }

        // 整体翻转
        reverseArr(str, 0, n - 1);
        // 此时每个单词也逆序了,需要根据空格将每个单元重新反转回去
        // i 为左指针
        for (int i = 0; i < n; i++) {
            if (str[i] == ' ') continue;
            // 双指针,左指针的单词起始位置,右指针为单词末后一个位置
            int j = i;
            while (j < n && str[j] != ' ') j++;
            reverseArr(str, i, j - 1);
            i = j; // 更新左边界值
        }
        return new String(str);
    }
}

output

SAMPLE A IS tHIS

C++

待补充

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43874301/article/details/128821091

leetcode205---isomorphic strings(相同结构的字符串)-爱代码爱编程

问题描述: Given two strings s and t, determine if they are isomorphic. Two strings are isomorphic if the character

leetcode系列151-翻转字符串里的单词-爱代码爱编程

【题目概要】 151. 翻转字符串里的单词 给定一个字符串,逐个翻转字符串中的每个单词,需要去掉字符串首尾多余的空格,单词之间只能留一个空格 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 【思路分析】 高级语言中,可以先分开单词,以空格为界限,然后反转,加入空格等操作本文用两种方法尝试,C语言

【LeetCode】680. 验证回文字符串 Ⅱ &变形-爱代码爱编程

一、题目描述 给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。 示例 1: 输入: "aba" 输出: True 示例 2: 输入: "abca" 输出: True 解释: 你可以删除c字符。 注意: 字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。 二、解题思路 & 代码 双指针 +

牛客题霸--字符串变形-爱代码爱编程

字符串变形 题目链接 Solution 将字符串按单词反转,并反转大小写。 从后往前扫,如果遇到空格,说明从这个空格的位置到下一个空格之间是一个单词。 然后将单词的每个字母依次取出,取出的过程变化大小写。 Code class Transform { public: char trans(char ch) { if ('a

牛课题霸 字符串变形-爱代码爱编程

题目描述 对于一个给定的字符串,我们需要在线性(也就是O(n))的时间里对它做一些变形。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把着个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。比如"Hello World"变形后就变成了"wORLD hELLO"。   输入描述: 给定一个字符串s以及它的长

【回溯】【leetcode】字符串全排列(4题)-爱代码爱编程

题目1:有重复字符全排列 输入一个字符串,打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s = "abc" 输出:["abc","acb","bac","bca","cab","cba"] 来源: 剑指 Offer 38. 字符串的排列 面试题 08.08. 有重复字符串的排列组合

leetcode关于微信读书的笔记-字符串-爱代码爱编程

1.判断两个字符串是否互为变形词 (1)题目: 给定两个字符串str1和str2,如果str1和str2中出现的字符种类一样且每种字符出现的次数也一样,那么str1与str2互为变形词。请实现函数判断两个字符串是否互为变形词。 (2)举例: str1="123",str2="231",返回true。str1="123",str2="2331",返回fals

字符串变形-字符串NC89-python-爱代码爱编程

python # -*- coding:utf-8 -*- class Solution: def trans(self, s, n): # write code here res = [' '] * n i, j = n-1, 0 stack = []

【Leetcode字符串】151. 翻转字符串里的单词(有对于字符串分割的总结!!关于字符串操作的很重要操作分析!!)-爱代码爱编程

文章目录 本题可参考以下博客:Leetcode1511.问题描述2.解决方案重要步骤:去重冗余空格操作1.使用string库函数erase()直接移除2.使用双指针解法一:不使用辅助空间解法二:使用辅助空间先去除冗余再分割解法三:使用辅助空间和库函数(和解法二思路一样,区别是使用库函数) 本题可参考以下博客: char*和string的相互转

【leetcode】把数字翻译成字符串 c++-爱代码爱编程

题目描述: 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例 1: 输入: 12258 输出: 5 解释: 12258有5种不同的翻译,分别是"bccfi",

leetcode-字符串变形-82-爱代码爱编程

题目要求 代码实现 class Solution { public: string trans(string s, int n) { stack<string> st;//用来存储反转 string str; s.push_back(' ');//避免特判 for(in

bm83 字符串变形_joshuagraham的博客-爱代码爱编程

前言 做了一段时间leetcode,发现牛客网的其实还不错,有代码提示,现阶段也不需要vip,还有个好处就是在测试时也可以对比真实运行结果 题目 描述 对于一个长度为 n 字符串,我们需要对它做一些变形。 首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写

【leetcode】字符串中的所有变位词_爱喝咖啡的tomcat的博客-爱代码爱编程

一、 题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 变位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 变位词 指字母相同,但排列不同的字符串。 输入: s = “cbaebabac

字符串变形-爱代码爱编程

对于一个长度为 n 字符串,我们需要对它做一些变形。 首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。 比如"Hello Wo

leetcode习题练习-爱代码爱编程

leetcode 20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足:         1.左括号必须用相同类型的右括号闭合。         2.左括号必须以正确的顺序闭合。         3.每个右括号都有一个对应的相同类型的左括号。 示例 1: 输

leetcode力扣秋招刷题路-0114-爱代码爱编程

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 114. 二叉树展开为链表(Mid) 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 r

leetcode-爱代码爱编程

leetcode-字符串 1、字符串反转2、字符串反转II(done)3、替换空格4、反转字符串里的单词5、左旋转字符串6、重复的子字符串(KMP)7、实现 strStr(没做KMP)8、比较版本号9、字符串变