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

这篇具有很好参考价值的文章主要介绍了【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 作者:小卢 

专栏:《Leetcode》

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

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


目录

 917. 仅仅反转字母

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


 917. 仅仅反转字母

917. 仅仅反转字母 

题目描述:

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

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

返回反转后的 s 。

示例:

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

思路:

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

代码:文章来源地址https://www.toymoban.com/news/detail-411068.html

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 。

示例:

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

思路:

利用一个计数数组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;
    }
};

到了这里,关于【LeetCode】917. 仅仅反转字母、387. 字符串中的第一个唯一字符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LeetCode:344. 反转字符串

    🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 题目描述 :编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改 输入数组、使用 O(1) 的额外

    2023年04月24日
    浏览(88)
  • LeetCode-344. 反转字符串

    LeetCode-344. 反转字符串 题解一(Java) 作者:@仲景 直接双指针前后一直交换即可

    2023年04月26日
    浏览(52)
  • 【leetcode】541. 反转字符串 II

    给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 解答:

    2024年02月15日
    浏览(39)
  • leetcode-541. 反转字符串 II

    2024年02月16日
    浏览(41)
  • 【leetcode】344. 反转字符串(easy)

    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间, 你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 考察:字符串+双指针 解答 :

    2024年02月13日
    浏览(36)
  • ​LeetCode解法汇总344. 反转字符串

    https://github.com/September26/java-algorithms 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组  s  的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改输入数组 、使用 O(1) 的额外空间解决这一问题。 示例 1: 示例 2: 提示: 1 = s.length = 105

    2024年02月14日
    浏览(49)
  • 代码随想录复习 151反转字符串中的单词242 有效的字母异位词 0-1背包问题

    代码如下  func reverseWords(s string) string {          b := []byte(s)             slowindex,fastindex := 0,0  //设置两个指着,快慢指针          for len(b)  0  fastindex  len(b)  b[fastindex] == \\\' \\\'{              fastindex++    //这里是取出开头的空格,逻辑是如果当

    2024年02月04日
    浏览(45)
  • 【leetcode 力扣刷题】字符串翻转合集(全部反转///部分反转)

    题目链接:344. 反转字符串 题目内容: 题目中重点强调了必须 原地修改 输入数组,即不能新建一个数组来完成字符串的反转。我们注意到: 原来下标为0的,反转后是size - 1【原来下标是size - 1的,反转后是0】; 原来下标是1的,反转后是size - 2【原来下标是size -2的,反转后

    2024年02月11日
    浏览(45)
  • leetcode-344. 反转字符串、9. 回文数

    题目1: 解题方法 直接用reverse()即可 代码: 如果不用考虑改变原列表的话,还有一个方法: s[ : :-1] (字符串也可用此方式进行反转) 题目2:9. 回文数 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)

    2024年01月17日
    浏览(37)
  • leetcode 151. 反转字符串中的单词

             这道题全面考察了字符串的一些操作,这里我的思路是: 先对字符串进行空格去除操作,这里要注意一个细节:先用for循环去除连续空格,再用if判断开头和结尾的空格。 再对没有异常空格的s 做一个反转操作。 再对每一个单词进行反转。 接下来先复习一下strin

    2024年02月09日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包