刷题第四天(跑路人笔记)<双指针>

简介: 刷题第四天(跑路人笔记)<双指针>

第四天(双指针)

翻转字符串

344. 反转字符串 - 力扣(LeetCode)


image.png


双指针一个指向最左一个指向最右, 进行交换即可=.=(好水的一道题)

void reverseString(char* s, int sSize)
{
    int left = 0;
    int right = sSize - 1;
    while(left < right)
    {
        int tmp = s[left];
        s[left] = s[right];
        s[right] = tmp;
        left++;
        right--;
    }
}


反转字符串中的单词 |||

557. 反转字符串中的单词 III - 力扣(LeetCode)


image.png


看注释=.=


char * reverseWords(char * s)
{
    int len = strlen(s);
    int i = 0;
    while(i<len)
    {
        int start = i;//当做开头
        while(i < len-1 && s[i+1] != ' ')//len-1防止'\0's[i+1]!=' '是找单词的结尾部分
        {
            i++;
        }
        int left = start;
        int right = i;
        while(left < right)//反转单词
        {
            int tmp = s[left];
            s[left] = s[right];
            s[right] = tmp;
            left++;
            right--;
        }
      i += 2;//因为现在的位置是前单词的后方我们跳两个位置就可以直接跳到下一个单词的第一个位置了.
    }
    return s;
}



相关文章
|
2月前
|
算法 容器
OJ刷题日记:2、双指针(2)
OJ刷题日记:2、双指针(2)
22 0
|
2月前
|
算法
LeetCode刷题---21.合并两个有序链表(双指针)
LeetCode刷题---21.合并两个有序链表(双指针)
|
2月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
4天前
|
算法 Java C语言
刷题训练之双指针问题
刷题训练之双指针问题
9 0
|
2月前
|
算法 测试技术 容器
【刷题】双指针入门
经过这四道题目的洗礼,我大概对双指针有了初步印象,接下来我会继续努力!!!
57 13
【刷题】双指针入门
|
2月前
|
C++
指针(笔记2)一
本文介绍了C++中`const`关键字修饰指针的两种情况:当`const`位于星号(*)左侧时,它限制指针所指向的内容不可修改,但指针自身可变;当`const`位于星号(*)右侧时,它限制指针变量不可改变,但可通过该指针修改其指向的内容。此外,文章还讨论了指针的基本运算,包括指针加减整数(用于遍历数组),指针减指针(计算两者间元素个数)以及指针的关系运算(在循环中控制指针移动)。
23 1
|
2月前
|
人工智能 C++
指针习题笔记(较难,可用于思维锻炼)
指针习题笔记(较难,可用于思维锻炼)
21 4
|
2月前
|
算法 测试技术 容器
【刷题】双指针进阶
请看入门篇 :双指针入门
23 0
【刷题】双指针进阶
|
2月前
|
算法
"刷题记录:哈希表+双指针 | leetcode-2465. 不同的平均值数目 "
该文段是一篇关于编程题目的解答,主要讨论如何找到数组中所有不同平均值的个数。作者首先使用排序和哈希集来解决,将数组转为列表排序后,通过双指针计算平均值并存入哈希集以去重。然后,作者发现可以优化方案,通过双指针在排序后的数组中直接计算两数之和,用哈希集记录不重复的和,从而避免实际计算平均值,提高了算法效率。最终代码展示了这两种方法。
24 0
|
2月前
|
程序员 编译器 C语言
指针(笔记2)二
这篇内容主要讲解了指针和野指针的概念以及如何避免野指针的问题。野指针是指针未初始化、越界访问或指向已释放内存的情况。避免野指针的方法包括初始化指针、避免指针越界和在不再使用时将指针设为NULL。此外,文章提到了`assert`断言在调试中的作用,它可以帮助检测程序运行时的错误条件。最后,讨论了函数调用中的传值调用和传址调用,指出传址调用允许函数直接修改实参变量的值。
21 0