【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符

简介: 目录 917. 仅仅反转字母 387. 字符串中的第一个唯一字符

作者:小卢

专栏:《Leetcode》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》


目录

917. 仅仅反转字母

387. 字符串中的第一个唯一字符


917. 仅仅反转字母

917. 仅仅反转字母

题目描述:

给你一个字符串 s ,根据下述规则反转字符串

  • 所有非英文字母保留在原有位置。
  • 所有英文字母(小写或大写)位置反转。

返回反转后的 s

示例:

思路:

利用两个指针来遍历字符串,一个指向头一个指向尾,两个指针找到是字母的位置,然后交换,直到begin==end。

代码:

class Solution {
public:
bool ischar(char ch)
{
    if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
    return true;
    return false;
}
    string reverseOnlyLetters(string s) {
        int begin=0;
        int end=s.size()-1;
        while(begin<end)
        {
            while(begin<end&&!ischar(s[begin]))
            begin++;
            while(begin<end&&!ischar(s[end]))
            end--;
            swap(s[begin],s[end]);
            begin++;
            end--;
        }
        return s;
    }
};

387. 字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符

题目描述:

给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 。如果不存在,则返回 -1

示例:

思路:

利用一个计数数组Count[],变量字符串,在字母-‘a’的对应位置计数,最后在遍历一次字符串,找到第一个等于1的位置。

代码:

class Solution {
public:
    int firstUniqChar(string s) {
        int Count[30]={0};
        for(int i=0;i<s.size();i++)
            Count[s[i]-'a']++;
            for(int i=0;i<s.size();i++)
            if(Count[s[i]-'a']==1)return i;
            return -1;
    }
};
相关文章
|
1月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
1月前
|
存储
力扣面试经典题之数组/字符串
力扣面试经典题之数组/字符串
23 0
|
存储 编译器 Linux
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
标准库中的string类(中)+仅仅反转字母+字符串中的第一个唯一字符+字符串相加——“C++”“Leetcode每日一题”
|
11天前
【力扣】1832.判断句子是否为全字母句
【力扣】1832.判断句子是否为全字母句
|
1月前
|
网络协议
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
《 LeetCode 热题 HOT 100》——无重复字符的最长子串
|
1月前
leetcode热题100. 字母异位词分组
leetcode热题100. 字母异位词分组
16 0
|
1月前
|
存储
leetcode2744. 最大字符串配对数目
leetcode2744. 最大字符串配对数目
17 0
|
1月前
|
机器学习/深度学习 NoSQL Shell
力扣刷题-翻转字符串
力扣刷题-翻转字符串
12 1
|
1月前
|
算法 Java
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
[Java·算法·简单] LeetCode 28. 找出字符串中第一个匹配项的下标 详细解读
23 0
|
1月前
|
Go C++
【力扣】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
【2月更文挑战第17天】2645. 构造有效字符串的最小插入数(动态规划 贪心 滚动数组优化 C++ Go)
31 8