[解题报告](第21讲) 字符串算法(一) - 字符串遍历(1)

简介: [解题报告](第21讲) 字符串算法(一) - 字符串遍历

目录


零、写在前面


一、主要知识点


       1.字符串遍历


       2.大小写转换。


二、课后习题


1812. 判断国际象棋棋盘中一个格子的颜色


LCP 17. 速算机器人


2011. 执行操作后的变量值


1876. 长度为三且各字符不同的子字符串


520. 检测大写字母


709. 转换成小写字母


1704. 判断字符串的两半是否相似


1844. 将所有数字用字符替换


1805. 字符串中不同整数的数目


写在最后


零、写在前面

        这是打卡的第二十天,今天难度不高,其中有些是之前的题目我放了链接。主要知识点在

《算法零基础100讲》(第21讲) 字符串算法(一) - 字符串遍历https://blog.csdn.net/WhereIsHeroFrom/article/details/120875895

https://blog.csdn.net/WhereIsHeroFrom/article/details/120875895


一、主要知识点


       1.字符串遍历


       由于'\0'结束符的ASCII码为0,所以可以用下面的方式进行遍历。


for(int i = 0;s[i];++i){
    //blabla
}

       2.大小写转换。


       其实小写的ASCII码比大写的大' '个(你说你看不见?你仔细瞅瞅?)。好吧其实就是差一个空格的ASCII码值。可以取查表看看

if(s[i] >= 'A' && s[i] <= 'Z'){
    s[i] += ' ';
}


二、课后习题


1812. 判断国际象棋棋盘中一个格子的颜色


1812. 判断国际象棋棋盘中一个格子的颜色

https://leetcode-cn.com/problems/determine-color-of-a-chessboard-square/


思路

image.png


如果把它看成一个矩阵的话,就是下标和为偶数的是黑色,奇数为白色。


所以一行代码完事了呗?


bool squareIsWhite(char * coordinates){
    //求下表和并返回奇偶判定
    return (coordinates[0] - 'a' + coordinates[1] - '1') & 1;
}

结果分析

image.png


可还行?


LCP 17. 速算机器人


LCP 17. 速算机器人

https://leetcode-cn.com/problems/nGK0Fy/


主要思路


       不难,让干啥干啥就完事了。。


int calculate(char* s){
        int x = 1,y = 0;//初始化
        for(int i = 0;s[i];++i)    //遍历字符串计算值
            if(s[i] == 'A')    x = 2 * x + y;
            else        y = 2 * y + x;
        return x + y;
}

结果分析

image.png


可以把?


2011. 执行操作后的变量值


2011. 执行操作后的变量值

https://leetcode-cn.com/problems/final-value-of-variable-after-performing-operations/


思路


差不多也算是暴力了,但是只要判断前两位就好了。


int finalValueAfterOperations(char ** operations, int operationsSize){
    int x = 0;
    for(int i = 0;i < operationsSize;++i)//遍历判断
        if(operations[i][0] == '+') x++;    //是++x
        else if(operations[i][0] == '-') x--;//是--x
        else if(operations[i][1] == '+') x++;//是x++
        else if(operations[i][1] == '-') x--;//是x--
    return x;
}

结果分析

image.png


凑合玩吧



相关文章
|
11月前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
268 64
|
算法
【算法】滑动窗口——找到字符串中所有字母异位词
【算法】滑动窗口——找到字符串中所有字母异位词
170 0
|
9月前
|
存储 算法 测试技术
【C++数据结构——树】二叉树的遍历算法(头歌教学实验平台习题) 【合集】
本任务旨在实现二叉树的遍历,包括先序、中序、后序和层次遍历。首先介绍了二叉树的基本概念与结构定义,并通过C++代码示例展示了如何定义二叉树节点及构建二叉树。接着详细讲解了四种遍历方法的递归实现逻辑,以及层次遍历中队列的应用。最后提供了测试用例和预期输出,确保代码正确性。通过这些内容,帮助读者理解并掌握二叉树遍历的核心思想与实现技巧。
263 3
|
12月前
|
算法
两个字符串匹配出最长公共子序列算法
本文介绍了最长公共子序列(LCS)问题的算法实现,通过动态规划方法求解两个字符串的最长公共子序列,并提供了具体的编程实现细节和示例。
247 1
两个字符串匹配出最长公共子序列算法
|
11月前
|
存储 缓存 算法
如何提高二叉树遍历算法的效率?
选择合适的遍历算法,如按层次遍历树时使用广度优先搜索(BFS),中序遍历二叉搜索树以获得有序序列。优化数据结构,如使用线索二叉树减少空指针判断,自定义节点类增加辅助信息。利用递归与非递归的特点,避免栈溢出问题。多线程并行遍历提高速度,注意线程安全。缓存中间结果,避免重复计算。预先计算并存储信息,提高遍历效率。综合运用这些方法,提高二叉树遍历算法的效率。
270 5
|
11月前
|
算法
树的遍历算法有哪些?
不同的遍历算法适用于不同的应用场景。深度优先搜索常用于搜索、路径查找等问题;广度优先搜索则在图的最短路径、层次相关的问题中较为常用;而二叉搜索树的遍历在数据排序、查找等方面有重要应用。
246 2
|
11月前
|
机器学习/深度学习 JSON 算法
二叉树遍历算法的应用场景有哪些?
【10月更文挑战第29天】二叉树遍历算法作为一种基础而重要的算法,在许多领域都有着不可或缺的应用,它为解决各种复杂的问题提供了有效的手段和思路。随着计算机科学的不断发展,二叉树遍历算法也在不断地被优化和扩展,以适应新的应用场景和需求。
493 0
|
12月前
|
算法 C++
【算法解题思想】动态规划+深度优先搜索(C/C++)
【算法解题思想】动态规划+深度优先搜索(C/C++)
|
12月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
505 0
|
12月前
|
存储 算法
数据结构与算法学习十六:树的知识、二叉树、二叉树的遍历(前序、中序、后序、层次)、二叉树的查找(前序、中序、后序、层次)、二叉树的删除
这篇文章主要介绍了树和二叉树的基础知识,包括树的存储方式、二叉树的定义、遍历方法(前序、中序、后序、层次遍历),以及二叉树的查找和删除操作。
203 0

热门文章

最新文章