本文主要是介绍【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 = “Test1ng-Leet=code-Q!”
输出:“Qedo1ct-eeLg=ntse-T!”
提示
- 1 <= s.length <= 100
- s 仅由 ASCII 值在范围 [33, 122] 的字符组成
- s 不含 ’ \"’ 或 ‘\\’
class Solution {
public://判断字符是不是字母,是的话返回true,否则返回falsebool isLetter(char ch){if(ch >= 'a' && ch <= 'z')return true;if(ch >= 'A' && ch <= 'Z')return true;return false;} string reverseOnlyLetters(string s) {if(s.empty())return s;int begin = 0, end = s.size() - 1;while(begin < end){while(begin < end && !isLetter(s[begin]))++begin;while(begin < end && !isLetter(s[end]))--end;swap(s[begin], s[end]);++begin;--end;}return s;}
};
这篇关于【leetcode】C++_string 917.仅仅反转字母的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!