917. Reverse Only Letters

2023-12-21 16:18
文章标签 reverse letters 917

本文主要是介绍917. Reverse Only Letters,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

917. 仅仅反转字母

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。

 

    示例 1:

    输入:"ab-cd"
    输出:"dc-ba"
    

    示例 2:

    输入:"a-bC-dEf-ghIj"
    输出:"j-Ih-gfE-dCba"
    

    示例 3:

    输入:"Test1ng-Leet=code-Q!"
    输出:"Qedo1ct-eeLg=ntse-T!"
    

     

    提示:

    1. S.length <= 100
    2. 33 <= S[i].ASCIIcode <= 122 
    3. S 中不包含 \ or "

    解法一

    //时间复杂度O(n), 空间复杂度O(1)
    class Solution {
    public:string reverseOnlyLetters(string S) {int n = S.size();int i = 0, j = n - 1;while(i < n && (S[i] < 'A' || S[i] > 'Z' && S[i] < 'a')) i++;while(j >= 0 && (S[j] < 'A' || S[j] > 'Z' && S[j] < 'a')) j--;while(i < j) {int temp = S[i];S[i] = S[j];S[j] = temp;i++, j--;while(i < n && (S[i] < 'A' || S[i] > 'Z' && S[i] < 'a')) i++;while(j >= 0 && (S[j] < 'A' || S[j] > 'Z' && S[j] < 'a')) j--;}return S;}
    };

    思路:

    1. 使用一对指针i,j,分别指向字符串的开头和结尾元素。
    2. 将i向右移动到首个字母元素;将j向左移动到首个字母元素上;
    3. 交换i和j所指的元素,重复进行第2步,直到i >= j。

    和反转字符串的思路一样。

    2019/08/05 21:58

    这篇关于917. Reverse Only Letters的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/520659

    相关文章

    leetcode#541. Reverse String II

    题目 Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of

    [LeetCode] 7. Reverse Integer

    题:https://leetcode.com/problems/reverse-integer/description/ 题目 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123Output: 321Example 2:Input: -123Output: -321Ex

    [LeetCode] 190. Reverse Bits

    题:https://leetcode.com/problems/reverse-bits/ 题目大意 将32位的数,二进制翻转。 解题思路 解法和 将int a =123,翻转的思路 相同。 int b= 0;while(a>0){b = b*10 + a %10;a /=10;} 将新数整体左移一位,然后 取每个数的第i位置,将该位放到 新数的最低位。循环32次遍可以得到翻转。

    codeforces 253D. Table with Letters - 2

    题目 D. Table with Letters - 2 time limit per test 2 seconds memory limit per test 256 megabytes input input.txt output output.txt Vasya has recently started to learn English. Now he needs to

    《python语言程序设计》第8章第11题将反向字符串 编写一个函数反向一个字符串,reverse(s)

    def reverse(text_arrange):len_text = len(text_arrange)dec_text = ""for i in range(1, len_text + 1):# print(i)dec_text += text_arrange[-i]print(f"反向输出{dec_text}")reverse("12345678")reverse("abcdefg

    [CTF]-Reverse:Reverse做题笔记

    Tea: [HNCTF 2022 WEEK2]TTTTTTTTTea: 找出关键数据,运行脚本 #include <stdio.h>int main(){unsigned int l,r;unsigned int v4[6]={-1054939302,-1532163725,-165900264,853769165,768352038,876839116};int flag[6]={0};

    【leetcode】C++_string 917.仅仅反转字母

    文章目录 1. 题目 1. 题目 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。返回反转后的 s 。 示例1: 输入:s = “ab-cd” 输出:“dc-ba” 示例2: 输入:s = “a-bC-dEf-ghIj” 输出:“j-Ih-gfE-dCba” 示例3: 输入:s =

    Leetcode139: Reverse Linked List II

    Reverse a linked list from position m to n. Do it in-place and in one-pass. For example: Given 1->2->3->4->5->NULL, m = 2 and n = 4, return 1->4->3->2->5->NULL. Note: Given m, n satisfy the fol

    第七题:整数反转(Reverse Integer)

    题目描述: 给定一个 32 位有符号整数 x,返回其反转后的整数。反转后的整数可能会超出 32 位整数的范围,因此需要注意处理溢出情况。 示例: 输入:x = 123 输出:321 输入:x = -123 输出:-321 输入:x = 120 输出:21 输入:x = 0 输出:0 要求: 需要考虑反转后的整数是否会超出 32 位整数的范围。32 位有符号整数的范围是 ([-2^

    [Vulnhub] Sleepy JDWP+Tomcat+Reverse+Reverse-enginnering

    信息收集 Server IP AddressPorts Opening192.168.8.100TCP:21,8009,9001 $ nmap -sV -sC 192.168.8.100 -p- --min-rate 1000 -Pn Starting Nmap 7.92 ( https://nmap.org ) at 2024-06-20 05:06 EDTNmap scan repor