【LeetCode125、557】验证回文串、反转字符串中的单词III

简介: 简单题,处理后反转字符串,判断和原字符串是否相同。isalnum判断是否为字母或者数字,如果不知道api就写判断条件;tolower是将char字符转为小写字母。三、代码

一、题目一

image.png

二、思路

C++中和字符判断有关的内置函数:

image.png

简单题,处理后反转字符串,判断和原字符串是否相同。isalnum判断是否为字母或者数字,如果不知道api就写判断条件;tolower是将char字符转为小写字母。

三、代码

class Solution {
public:
    bool isPalindrome(string s) {
        string temp;
        for(char ch: s){
            if(isalnum(ch)){
                temp += tolower(ch);
            }
        }
        string temp2 = temp;  
        reverse(temp.begin(), temp.end());
        return temp == temp2;
    }
};

一、题目二

image.png

二、思路

遇到空格就重新调整i,根据单词的左右两端,即ij,使用reverse。最后一个单词另外处理(因为最后一个单词后面没有空格)。

三、代码

class Solution {
public:
    string reverseWords(string s) {
        int i = 0, j = 0;
        while(j < s.size()){
            if(s[j] != ' '){
                j++;
            }else{
                reverse(s.begin() + i, s.begin() + j);
                j++;
                //新单词的开头i
                i = j;
            }
        }
        //处理最后一个单词
        reverse(s.begin() + i, s.end());
        return s;
    }
};
相关文章
|
2月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
2月前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
26 0
|
2月前
|
存储 canal 算法
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
[Java·算法·简单] LeetCode 125. 验证回文串 详细解读
28 0
|
6天前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
25 5
【刷题】 leetcode 面试题 01.06 字符串压缩
|
6天前
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
leetcode代码记录(对称二叉树 中序遍历+回文串 为什么不行
8 0
|
6天前
leetcode代码记录(删除字符串中的所有相邻重复项
leetcode代码记录(删除字符串中的所有相邻重复项
10 0
|
26天前
|
算法
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
代码随想录算法训练营第五十五天 | LeetCode 583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结
24 1
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
29天前
|
机器学习/深度学习 索引
【力扣】387. 字符串中的第一个唯一字符
【力扣】387. 字符串中的第一个唯一字符