首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据结构与算法 -- 栈的应用(进制转换、括号匹配)

下面就按照这两个应用稍微写一点C语言的代码。...可以看到,N是我们输入的10进制数,除以8,余数保留在栈,得到的168接着与8整除运算,直到N div 8  等于0,最后把栈数据取出即可,正好用到了栈的规则,先进后出的特性。...思路: 我们可以从键盘录入字符,通过空格分开,在如果是左边括号( { ),就入栈,如果是右边括号( } )就出栈进行比较,看是否输入一对括号,如果匹配,就进行下一个比较,否则return,就没有再比较的必要了...因为上面有栈的入栈和出栈,这里就不在给出,使用上面即可. 注意:把上面结构体int型,改成char型。...2.1:括号匹配算法 从控制台正常输入空格隔开,遇见m结束,在输入期间,检测到左括号,栈,右括号就要和和左括号比较,如何比较呢,我们可以把右括号翻转,说白了就是遇见右括号就让它变成指定的左括号形式,

2.1K20

python第一章计算机基础

1.3.1 解释和编译型语言 解释型语言就类似于: 实时翻译,代表:Python / PHP / Ruby / Perl 特点:写完代码交给解释器,解释器会从上到下一行行代码执行:边解释边执行。...编译型语言类似于:说完之后,整体再进行翻译,代表:C / C++ / Java / Go ... 特点:代码写完后,编译器将其变成成另外一个文件,然后交给计算机执行。...学习该语言的语法规则 1.4 软件(应用程序) 软件又称为应用程序,就是我们在电脑上使用的工具,类似于:记事本 / 图片查看 / 游戏.是由程序员编写的. 1.5 进制 对于计算机而言无论是文件存储 /...网络传输输入本质上都是:二进制(010101010101ainc),:电脑上存储视频/图片/文件都是二进制; QQ/微信聊天发送的表情/文字/语言/视频 也全部都是二进制。...它的基数为2,进位规则是“逢二进一” 计算机内部都是以二进制存储数据的. 8进制: 采用0,1,2,3,4,5,6,7八个数字,逢八1 . 10进制,人来进行使用一般情况下计算机可以获取10进制

40810
您找到你想要的搜索结果了吗?
是的
没有找到

linux基础命令介绍四:文本编辑 vim

如果打开的是一个老文件,底部左边显示"file" 3L, 66C字样,表示文件名,当前光标所处行号,文件总字节数。文件没有字符的地方会以字符~开头。...,并在新增行行首开始输入 O 在光标所在行上新增一行,并在新增行行首开始输入 进入插入模式后,底部会出现-- 插入 --字样;这时就可以在光标位置进行输入了。...j或下箭头键 光标向下移动一格 k或上箭头键 光标向上移动一格 0 光标移动到当前行开头 ^ 光标移动到当前行非空白字符(空格、tab键等)的开头 $ 光标移动到当前行结尾 g_ 光标移动到当前行非空白字符的结尾...它要比通配符更通用,大多数编程语言和一些工具(vim、grep、awk、sed)都有对正则表达式的直接支持。...、\+、\| 下面结合正则举例说明vim模式匹配及部分命令用法 匹配字符串world并使光标停留在匹配行后第三行行首: /world/+3 将第三行到第八行行首添加注释符号//: :3,8s/^/\/

1.2K20

《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了

C:这可没有,上一节的内容可是这一节的基础。 小媛:行行行,你说的都对。 小C:哈哈哈,我现在告诉你,我们可以使用一个叫做scanf的函数接收用户输入的值。...小C:哈哈哈,那我告诉你,假设你输入的帐号存入到一个字符数组,然后再把密码存入到一个字符数组中进行判断不就好了? 小媛:对哟,我试试…不对,怎么样创建一个空数组?...小C:简单吧,那你知道怎么样判断输入的帐号密码了吗? 小媛:好像有点思路了,是不是先创建两个字符数组,然后使用两个scanf进行接收输入值? 小C:其实使用一个scanf就可以了。...小C:对的上面这个代码在scanf中使用了两个%s使用空格隔开,在输入值的时候也需要使用空格隔开两个值,这两个值分别存入a和b变量之中,第一个输入的就存入变量a,第二个值就存入在变量b之中。...小媛:那我不使用空格使用其它的符号进行间隔呢? 小C:那你就需要使用你隔开的那个符号进行间隔。 小媛:那我懂了,接下来我就对这两个值进行判断就好了对吧? 小C:是的,接下来的步骤懂了吧?

29820

C++从入门到精通(第八篇) :IO流

C语言输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数 据,并将值存放在变量。...C语言借助了相应的缓冲区来进行输入与输出。...键盘)向计算机内部(内存)输入和从内存向外部输出设备(显示器)输出的过程,这种输入输出的过程被形象的比喻为“流” 特性: 有序连续、具有方向性 注:为了实现这种流动,C++定义了I/O标准类库...但如果是 字符型和字符串,则空格(ASCII码为32)无法用cin输入,字符串也不能有空格。回车符也无法读 入。..._port << endl; return 0; } 注:相比于C语言方便很多,不用控制格式 4. stringstream的简单介绍 在程序如果想要使用stringstream,必须要包含头文件

75110

解决Python执行命令时路径空格引发的困扰

本篇文章将深入探讨当路径包含空格时,如何在Python中正确执行命令,以及提供一些实用的解决方案和最佳实践指导。问题重现:一步步复现路径空格引发的问题让先来模拟一个问题场景。...假设你有一个位于C:\Program FilesMyApp\app.exe的程序需要通过Python启动。如果你直接将这个路径硬编码你的Python脚本,很可能会遇到错误。...这是因为命令行解析器可能会将路径空格视为命令分隔符,从而导致命令无法正确执行。解决方案一:使用引号包裹路径最简单的解决方法是在执行命令时用双引号把含有空格的路径包裹起来。...高级技巧:使用subprocess模块运行命令对于更复杂的命令执行需求,Python提供了一个强大的subprocess模块。它不仅允许你执行命令,还允许你控制输入/输出流,甚至与子进程进行交互。...最佳实践:预防路径空格问题的建议尽可能避免在文件路径包含空格。如果可能的话,选择不包含空格的文件夹名称。总是使用os.path.join()或类似的方法来构建文件路径,而不是手动拼接字符串。

10310

堆栈式程序执行模型详解

程序的运行不仅仅是简单的一行行执行代码,它涉及到许多的背后机制,其中堆栈式程序执行模型就是其中之一。堆栈式程序执行模型是由程序运行时的内存分配策略产生的,是执行程序的基本策略之一。...程序执行模型概述 程序执行模型是计算机科学中一个非常重要的概念,它描述了如何在内存组织和管理程序数据。...在一些语言中,CC++,程序员需要显式地请求和释放堆内存。然而,在一些高级编程语言中,Java、Python和Go等,堆内存的管理更为复杂,它由程序员的显式操作和垃圾回收器的自动管理共同完成。...这就意味着,使用这些高级编程语言的开发者,通常只需要关注如何创建新的对象,而不必过多地担心如何删除它们,因为垃圾回收器会自动地完成这个任务。...当然,这并不是说开发者可以完全忽视内存管理,因为不当的使用还是可能导致内存泄漏或其他性能问题。

21220

Shell 编程核心技术《一》

,就像 Java、Python 这些大众化的编程语言一样,也具备编程语言的特性,我们来看下 Shell 编程主要涉及的几个方面的内容。...在变量的定义,有几点需要我们注意: 等号(=) 左右不要有空格; 如果内容有空格,需要使用单引号或双引号; 双引号支持转义符,$ 开头的变量会被自动替换。...在变量的使用还有几个方法需要注意,echo a、echo “a” 都可以表示变量输出,但如果你想使用更严谨建议使用双引号,还有就是多个字符串串联使用时,使用 {} 对内容括起来表示该内容是变量,避免与后面的其他字符混淆导致报错...3 特殊符号的使用 除了这些之外,还需要掌握一些特殊的符号,例如: 双引号用于括起一段字符串,支持 $var 形式的变量替换; 单引号也表示其内容是字符串,但不支持转义; $’\n’ 表示 ANSI-C...今天分享的内容实操性比较强,如果想掌握这些知识点,还是需要动手去一行行地敲命令,这样印象才会更深刻。

64620

【干货】小白如何熟练掌握C语言随机数!

随机数的使用,是不少小伙伴在学C语言过程中都会遇到的一个坎,今天老九为大家讲解如何在C语言使用随机数。 通常情况下,使用最多的方法的就是使用rand函数随机生成伪随机数来完成随机数的生成工作。...: 生成10以内的数字,可以参考rand()%10 生成1~10之间的数字,可以参考rand()%10+1 特定的,要生成a~b之间的数字,可以参考rand()%(b-a+1)+a 更多时候,我们希望每次运行生成的数字都不相同...[81]; int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。...='\n'); s[i]='\0'; 上期答案: C 解析:scanf("%s",s)用这种格式输入字符串时,空格和回车符都作为输入数据的分隔符而不能被读入,题目要求输入的字符串有空格,不符合题意要求,...答案为C选项。

2K71

用户自定义vim编辑器配置

1、首页在linux系统安装vim,以centos为例: [root@localhost ~] yum install -y vim 2、在系统 ~ 目录下检查是否存在 .vimrc,如果没有则新建一个...3、打开.vimrc,下面贴出我个人的配置 " 语法高亮显示 syntax on " 设置行号 set nu " 设置tab4个空格 set tabstop=4 set expandtab " 程序自动缩进时候空格数...set shiftwidth=4   " 退格键一次删除4个空格 set softtabstop=4   " 在编辑过程,在右下角显示光标位置状态行 set ruler   " 搜索忽略大小写 set... ignorecase " 依据上面的对齐格式,智能的选择对齐方式,对于类似C语言编写上很有用 set smartindent " 在状态列显示目前所执行行的指令 set showcmd " 设置颜色主题...colorscheme desert 4、效果预览(我写的是c代码) ?

80610

C语言初阶(一)

---- C简介 C语言是一门面向过程的计算机编程语言,是编译型语言。 第一个C程序 C的数据类型 变量与常量 标准输入与输出 C编译器 Clang、gcc、MSVC等。...\n"); return 0; } 编译运行结果: 记住标准C语言格式 #include int main(){//一个c语言程序必须有且只有一个main函数,即主函数...数据类型本身不占据储存空间,使用任意数据类型创建变量时才在内存为变量开辟存储空间。 定义变量,并为变量在内存开辟一定的储存空间。 方式:数据类型名 空格 变量名字并以英文的分号结束。...#define定义的标识符常量 #define N 100 使用#define后大写字母N可以代替数字100出现在程序代码,便于修改。..."%d"的%d是格式字符串,该函数接收相应类型的输入,并把得到的输入储存到相应类型的变量a对应的内存地址

21210

Linux常用命令(二)

\n" 输出结束后不换行 # echo -n "please enter your name: " 接收用户输入 read 参数: a:将输入的文本存入数组,默认分隔符为空格或制表符 d:指定结束符...,默认结束符为换行符 e:从标准输入读取,使用readline库获取输入,此时用户可以使用退格键、方向键进行行编辑操作 n:指定读取的字符数 p:指定字符串输出到标准错误并读取输入 r:将读取到的字符串按字段放到不同的变量...s:先锁住屏幕,再从标准输入读取字符 t:在指定时间内没有输入就结束读取状态 u:从指定的文件描述符读取 显示并保存文本 tee : # ifconfig eth2 | tee eth2_info...] [user] [-a file] -s:设置邮件主题信息 -c使用一个秘密抄送列表 -b:使用一个抄送列表 查看邮件 # mail 参数: h:查看邮件标题 d:加序号可删除指定邮件 f:查看当前光标指向的邮件...:允许使用shell命令 启动新shell exec 启动一个新shell并在新shell执行指定的命令 # exec [command]

63420

Linux_文件查看、操作、统计命令

查看文件的前/后 n 行,默认 10 行 例如:head -n 2 Data/example.fq (3)cat:查看文本文件的内容,将文件所有内容输出到屏幕 常见参数 -A ## 打印所有内容,包括特殊字符,制表符...-n ## 打印出所有行号,-b 参数仅打印非空白行行号 常见用法: cat #输入 cat > file1 #重定向,往file1文件里面输入内容,再按 ctrl+c 暂停任务,file是一个文件...cat file1 #写完后,打印file1文件的内容 其他 zcat:可以查看压缩的文本文件 tac:逆向查看 cat Data/example.gtf | head -n 3 # | 管道符...前面的输出作为后面的输入。管道符后面要加命令。...(4)less:少看一点 less [参数] 文件名 上下左右键查看文本内容 Enter键向下移动一行 空格键翻页 q键退出 常用参数: -N:显示行号 -S:单行显示 zless:查看压缩文件 用“/

1.7K00

Linux基础 03 文件查看、操作、统计命令

世界上最遥远的距离就是我在空格前,你在空格后呜呜呜呜~今天学习比较琐碎的文件查看、操作、统计的命令,一共11个!常记常新!...1 文件看看看看看1.1 cat——好奇害死猫查看文本文件的内容,输出到屏幕不要贸然打开一个大文件常见参数:-A 打印所有内容,包括特殊字符,制表符-n 打印出所有行号 -b 仅打印非空白行行号常见用法...:可以用于将内容写入文件cat >file 重定向(重新定位输出的方向)向文件写内容时要按回车最后输入Ctrl+C标准输出流其他:tac:逆向查看zcat:可以查看压缩的文本文件1.2 head/tail...:查看文件的前/后n行-n 默认为10| 管道符:前面的输出作为后面的输入cat 文件名|head -n格式常用图片3 less:“少”看一点less 参数 文件名常用参数:-N:显示行号(大写)-S:...sort 排序常见参数:-n:按照数值从小到大排序纯数值型一位一位数进行比较-V:字符串中含有数值时,按照数值从小到大排序-r:逆向排序-k:指定按照哪一列进行排序-t:指定分隔符-n和-V不能一起使用

14110

linux工具——vim文本编辑器整理

d[1]G: 删除光标所在行到[第一行]最后一行 d$(0): 删除光标到行尾(行首) D: 删除到行尾 dw: 删除光标到单词结束 d[n]a(i)w: 删除光标所在的n个单词,(不)包括单词后的空格...C): 用法同删除d,在删除的同时进入插入模式 (超级有用) s(S): 删除字符(此行)并插入,相当于cl(c) -- 以下操作还是普通模式 x(X): 删除光标处(左边)字符,相当于dl(h) 命令行模式...command 导入命令行输出(在当前文件中导入系统文本内容或者路径很有用, r!echo /usr/local/jdk_1.8) !...command 执行shell命令 块模式(不常用) v 配合移动命令移动 v(V): 配合 hjkl选中 ctrl+v: 选中列 二、小技巧 清除文本所有内容 命令行模式输入以下3方式均可...ctrl+v 进入块模式 向下移动光标到添加注释的末尾航 键入 I 输入 # 按esc 退出 第二种方法:

1K20

借助yacc和lex自制计算器——《自制编程语言》一

在mycalc可以使用四则运算,即+、-、*、\。       ○ 整数。1、2、3等。       ○ 实数。123.456等。       ○ 换行符。...一个算式输入后,接着输入换行符就会执行计算,因此这里的换行符也应设置为记号     在lex使用正则表达式定义记号。...1.3 yacc:     yacc是自动生成语法分析器的工具,输入扩展名为.y的文件,就会输出语法分析器的C语言代码。...这一部分是使用正则表达式*去描述记号。 在规则区块遵循如下的书写方式:一个正则表达式的后面紧跟若干个空格,后接C代码。如果输入的字符串匹配正则表达式,则执行后面的C代码。...yacc的规则区块由语法规则以及C语言编写的相应动作两部分构成。 语法规则     在yacc,会使用类似BNF(巴克斯范式)的规范来编写语法规则。

4.5K10

Vim常见命令(简洁精炼,干货)

vim使用 vim三种模式:命令模式、插入模式、底行模式。使用ESC、i、:切换模式。 vim [路径/]目标文件名:若存在则打开,不存在则新建并打开。 ?...基本步骤:1. vim hello.c 2. 键入i 3. 编辑 4. 键入[ESC] 5....键入:wq保存退出 命令模式:用于复制、粘贴、删除、插入、撤销、移动等命令 移动: h、j、k、l--移动左、下、上、右光标(j比较像 ↓) 数字0--到本行行头 $--到本行行尾 ^--到本行第一个非空格字符...a--在光标后插入文本 o--在当前行后插入新行 O--在当前行前插入新行(大写) 删除: x--删除当前光标所在字符 dd--删除当前光标所在行,删除的内容在剪切板 [n]dd--删除当前光标所在行开始的...(小数点):重复上一次命令 v:可视化操作(输入命令前先输入v) 块操作:Ctrl+v,移动光标选择对象,I,,esc生效 自动缩进:Ctrl+v,移动光标选择行,= 左右缩进:Ctrl

82810
领券