28K+ 次浏览
在这里,我们将创建一个C程序来检测C程序中的标记。这被称为编译器的词法分析阶段。词法分析器是编译器的一部分,它检测程序的标记并将其发送给语法分析器。标记是代码中最小的实体,它可以是关键字、标识符、常量、字符串文字或符号。C语言中不同类型标记的示例:关键字示例:for、if、include等;标识符示例:变量、函数等;分隔符示例:‘, ’、‘;’等;运算符示例:‘-’、‘=’、‘++’等。检测C程序中标记的程序 - 示例 在线演示 #include #include ... 阅读更多
3K+ 次浏览
在这个问题中,我们将演示fork()和pipe()。我们将创建一个用于Linux的C程序,使用两个进程连接两个字符串,一个进程将接收输入并将其发送给另一个进程,另一个进程将用预定义的字符串连接该字符串并返回连接后的字符串。首先让我们回顾一下fork()和pipe()。fork() - 它创建一个子进程,这个子进程有一个新的PID和PPID。pipe()是一个Unix、Linux系统调用,用于进程间通信。让我们举个例子来理解这个问题,输入 Learn programming 预定义字符串:at tutorialspoint 输出 Learn programming at tutorialspoint 解释 P1接收... 阅读更多
12K+ 次浏览
在这个问题中,我们给定一个链表。我们的任务是创建一个程序来反转链表。该程序将反转给定的链表并返回反转后的链表。链表是由包含项目的链接组成的序列。每个链接都包含到另一个链接的连接。示例 9 -> 32 -> 65 -> 10 -> 85 -> NULL 反转链表是一个通过反转链表的链接来创建的链表。链表的头节点将是链表的最后一个节点,而最后一个... 阅读更多
插入排序是一种排序算法,它是一种就地比较排序算法。该算法通过将元素放置到已排序子数组中的位置来工作,即位于该元素之前的子数组是一个已排序的子数组。算法步骤1 - 从1循环到n-1并执行 - 步骤2.1 - 选择位置i处的元素,array[i]。步骤2.2 - 将该元素插入到已排序子数组array[0]到arr[i]中的相应位置。让我们举个例子来理解该算法。数组 = [34, 7, 12, 90, 51] 对于i = 1,arr[1] = 7,将其放置在子数组arr[0] - arr[1]中的位置。[7, 34, 12, 90, 51] 对于i = 2,... 阅读更多
311 次浏览
在这个问题中,我们得到了两个字符串,一个文本大小为n,另一个模式大小为m。我们的任务是创建一个用于Anagram子串搜索的程序。在这里,我们必须找到文本中模式及其所有排列(字谜)的所有出现。让我们举个例子来理解这个问题,输入文本 = “xyztrwqxyzfg” 模式 = “xyz” 输出在索引0处找到 在索引7处找到 在这里,我们将讨论使用Rabin-Karp算法解决这个问题的方法。在这个算法中,我们在字符串中取一个与模式大小相同的窗口,并滑动... 阅读更多
8K+ 次浏览
在这个问题中,我们得到了两个字符串,一个文本大小为n,另一个模式大小为m。我们的任务是创建一个用于KMP算法模式搜索的程序,它将查找文本字符串中模式的所有出现。在这里,我们必须找到文本中模式的所有出现。让我们举个例子来理解这个问题,输入文本 = “xyztrwqxyzfg” 模式 = “xyz” 输出在索引0处找到 在索引7处找到 在这里,我们将讨论使用KMP(Knuth Morris Pratt)模式搜索算法解决这个问题的方法,它将使用模式的预处理字符串进行匹配... 阅读更多
1K+ 次浏览
归并排序是一种基于分治技术的排序算法。归并排序的时间复杂度为O(n log n)。该算法首先将数组分成相等的两半,然后以某种方式将它们合并。迭代归并排序在迭代归并排序中,我们将使用递归方法将元素分成相等的两半,然后使用迭代方法将它们合并回已排序的数组。迭代归并排序程序/* 递归C程序用于归并排序 */示例 在线演示 #include #include void merge(int arr[], int l, int m, int r) { int i, j, k; ... 阅读更多
210 次浏览
在这个问题中,我们得到了两个字符串,一个文本大小为n,另一个模式大小为m。我们的任务是创建一个用于Anagram子串搜索的程序。在这里,我们必须找到文本中模式及其所有排列(字谜)的所有出现。让我们举个例子来理解这个问题,输入文本 = “xyztrwqyzxfg” 模式 = “xyz” 输出在索引0处找到 在索引7处找到 为了解决这个问题,我们将不得不使用类似于Rabin Karp算法的算法,该算法用于通过添加所有字符的ASCII值来检查字谜的出现... 阅读更多
401 次浏览
在这个问题中,我们得到了一个二叉树。我们的任务是创建一个程序,将C++中的二叉树转换为带括号的字符串。二叉树的值是整数,并将以先序遍历的方式提供给程序。字符串应仅包含整数和括号(),并且应进行优化,即应消除所有空对。二叉树是一种树,它有一个特殊条件,即每个节点最多可以有两个子节点。二叉树的示例 - 先序遍历:[4, 1, 8, 3,... 阅读更多
326 次浏览
这里,我们给定一个大小为 n 的数组,其初始元素均为 0。我们将对其执行一些查询操作。共有两种类型的查询:更新 (update(l, r, value)) — 将值添加到数组中索引 l 到 r 之间的元素。例如,update(2, 4, 5) 将通过在索引 4 和 5 的元素处放置元素 2 来更新数组。获取区间和 (getRangeSum(l, r)) — 查找从 l 到 r 元素范围内的元素之和。例如,getRangeSum(4, 7) 将查找所有……阅读更多