
习题
indomitable@I
踏着层层阶梯攀登
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客网---从尾到头打印链表(多种解法)
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 解法1:链表逆置 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } }; ...原创 2020-04-20 13:14:43 · 175 阅读 · 0 评论 -
牛客网----替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路: 1.题目是将空格替换成%20,也就是把1个字符替换成3个字符,那每个空格后面的字符都要向后移,否则就会覆盖之前的字符 2.如果从前往后找空格,那每找到一个,就要移动后面是字符,时间复杂度为O(N^2) 3.不妨从后向前找,...原创 2020-04-20 10:09:27 · 210 阅读 · 0 评论 -
牛客网--链表分割
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} };*/原创 2020-03-09 13:33:08 · 157 阅读 · 0 评论 -
牛客网---链表中倒数第K个结点
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路1:(效率慢) 可以先遍历求出链表中有多少个结点,第二次再从前往后走,让count–,直到count=k,则找到了该结点。 class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { unsigned count = 0...原创 2020-03-09 11:43:18 · 161 阅读 · 0 评论 -
牛客网--把字符串转换成整数
来源:牛客网 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述 : 输入一个字符串, 包括数字字母符号, 可以为空 输出描述 : 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 +2147483647 1a33 输出 2147483647 0 思路:把第一个字符出现的情况单独处理下,再把后面的一起处理,得...原创 2020-02-23 13:30:09 · 243 阅读 · 0 评论 -
牛客网---不能使用乘除等条件,求1+2+3+...+n
题目:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C) 解: 1.创建n次对象,调用n次构造函数 2.不能直接用数组创建n个对象(数组下标不能是变量),所以用new动态创建n个对象 3.类内定义两个static变量(目的是对所有变量共享),一个自加一个累加,最后返回累加的结果 4.每次计算前要清空上一次计算的结...原创 2020-02-07 19:29:04 · 191 阅读 · 0 评论 -
C语言:3种方法实现左旋字符串
题目:实现一个函数,可以左旋字符串中的k个字符。 比如:ABCD左旋一个字符得到BCDA 方法一: 可以定义一个temp变量临时保存第一个字符,然后从第二个元素开始,依次往前移动,最后将第一个字符放到最后就好了,要左旋多少个就把之前步骤重复多少次 注意:如果左旋次数多的话,有些中间的结果会和最终结果一样,所以求出有效左旋次数会优化些 代码如下: void LeftMove(char *str,...原创 2019-12-02 18:08:23 · 347 阅读 · 0 评论 -
C语言:数组笔试题解析
关于这类题,我们需要了解一下基本内容 sizeof 字符串开辟空间的大小,包括’\0’ strlen 字符串长度,求的是字符串的有效个数,不包括’\0’ 数组名一般代表首元素的地址 只有两种情况,代表整个数组的地址 sizeof(数组名)单独使用时 &数组名 具体理解如下: 一维数组: ...原创 2019-11-26 15:33:48 · 544 阅读 · 0 评论 -
C语言:用函数指针数组实现转移表(计算器)
函数指针数组也是数组,数组的每一个成员是函数指针(这个指针指向函数) int main() { int x, y; int input = 1; int result = 0; //定义一个函数指针数组 int (*a[])(int x,int y) = { 0, Add, Sub, Mul, Div, Mod }; while (input) { prin...原创 2019-11-25 21:53:01 · 269 阅读 · 0 评论 -
C语言:求二进制中1的个数(3种方法)
题目:写一个函数返回参数二进制中 1 的个数 比如: 15-> 0000 1111 4 个 1 程序原型: int count_one_bits(unsigned int value) { // 返回 1的位数 } 介绍三种方法: 方法一:取余求个数 我们之前学过怎么样将十进制 #include<stdio.h> #include<windows.h> #pragma...原创 2019-11-05 19:13:35 · 8780 阅读 · 3 评论 -
C语言:简单实现三子棋小游戏
三子棋游戏就是,假如有玩家A、B在一个棋盘下棋,一人一步轮换,谁先将三个相同的棋子连成一条线,谁就赢了 下面具体介绍游戏的实现: game.h #ifndef _GAME_H_ #define _GAME_H_ #pragma warning(disable:4996) #include<stdio.h> #include<windows.h> #include<s...原创 2019-10-29 21:41:06 · 457 阅读 · 0 评论 -
C语言 : 编写代码模拟三次密码输入的场景
题目: 编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”, 密码错误, 可以重新输入,最多输入三次。三次均错,则提示退出程序。 代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr1[8] = "ab12345"; ...原创 2019-01-21 18:54:04 · 395 阅读 · 0 评论 -
C语言:有关递归、非递归的题
7.递归方式实现打印一个整数的每一位 void print(int n) { if (n > 9) print(n / 10); printf("%d “, n % 10); } int main() { int n = 0; printf(“请输入你要打印的数:>\n”); scanf(...原创 2019-10-22 17:57:29 · 331 阅读 · 0 评论 -
C语言:猜数字游戏
void menu() { printf("*****************************\n"); printf("***** 1.play 2.exit *****\n"); printf("*****************************\n"); } void play() { int ret=rand()%100+1; int num = 0; ...原创 2019-10-22 00:03:06 · 159 阅读 · 1 评论 -
C语言:求出0~999之间的所有“水仙花数”并输出
我们需要知道什么是水仙花数 “水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3,则153是一个“水仙花数”。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<math.h> int main() { int n = 0...原创 2019-10-21 23:44:05 · 230 阅读 · 0 评论 -
C语言:输出1-100之间的奇数
奇数就是不被2整除的数,eg:1、3、5… 直接想的也是这个,用函数写吧! 方法一: #include<stdio.h> #include<stdlib.h> #pragma warning(disable:4996) void PrintNum(int i) { for (i = 1; i <= 100; i++) { if (i % 2 == 0) c...原创 2019-10-15 23:46:36 · 3645 阅读 · 0 评论