考核题解读

考核题解读

最大嵌套深度

在这里插入图片描述
由括号先进的后对应的特性可知该题表面上是栈的应用,实际上是用数组模拟栈,且只需记录栈顶移动的最大值;
源代码如下:

int maxDepth(char * s){
    int len = strlen (s);
    int i;
    int top = 0;
    int max = top;
    for (i = 0;i < len ; i++) {
        if (s[i] == '(') {
            top++;
        }
        if (s[i] == ')') {
            top--;
        }
        if (top > max) {
            max = top;
        }
    }
    return max;
}

删除链表的中间节点

在这里插入图片描述
这题可以分为两部,寻找中间节点,删除操作中间节点;
由于没有时间限制,最简单的方法是直接遍历技术,再除以二
,如果追求时间可以使用快慢指针,这里我用的是第一种方法;

struct ListNode* deleteMiddle(struct ListNode* head){
    int cnt = 0;
    struct ListNode* p;
    for(p = head; p ;p = p->next) {
        cnt++;
    }
    if (head == NULL || head->next == NULL) {
        return NULL;
    }
    struct ListNode* dummyhead = (struct ListNode*) malloc (sizeof (struct ListNode));
    dummyhead->next = head;
    p = dummyhead;
    struct ListNode* q = NULL;
    int i;
    for(i = 0;i < cnt / 2 + 1;i++) {
        q = p;
        p = p->next;
    }
    q->next = p->next;
    free (p);
    return head;
}

有序数组的平方

在这里插入图片描述
如题,先非递减排序,然后平方,这里我选择冒泡排序后,再遍历平方;

int* sortedSquares(int* nums, int numsSize, int* returnSize){
    *returnSize = numsSize;
    int i;
    for (i = 0; i < numsSize; i++) {
        nums[i] = nums[i] * nums[i];
    }
    int j;
    for (i = numsSize - 2; i >= 0; i--) {
        for (j = 0; j <= i; j++) {
            if (nums[j] > nums[j + 1]) {
                int t = nums[j];
                nums[j] = nums[j + 1];
                nums[j + 1] = t;
            }
        }
    }
    return nums;
}

压缩字符串

在这里插入图片描述

先统计字符的个数,找到连续相同的字符,把后面相同的转化为新字符,直到遍历结束;

int compress(char* chars, int charsSize){
    int j = 0;
    int k = 0;
    int i = 0;
    while (i < charsSize) {
        while (i < charsSize && chars[j] == chars[i]) {
            i++;
        }
        chars[k++] = chars[j];  
        int len = i - j;        
        if (len > 1) {
            char str[10];
            sprintf(str, "%d", len);  
            for (int m = 0; m < strlen(str); m++) {
                chars[k++] = str[m];
            }
        }
        j = i;
    }
    return k;
}

盛最多水的容器

在这里插入图片描述
首尾指针向中缩进,求面积大小,再把最短的一段移动,循环,直到遍历结束

int maxArea(int* height, int heightSize){
    int left=0;
    int right=heightSize-1;
    int tall=0;
    int area=0;
    int max=0;

    while(left < right)
    {
        tall=height[left]<height[right] ? height[left] : height[right];
        area=tall*(right-left);
        max=max>area ? max : area;
        
        if(height[left] < height[right])left++;
        else right--;
    }

    return max;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是Python考核的汇总: 1. 如何在Python中读取文件? 使用Python内置的`open()`函数来打开文件并读取其内容,示例代码如下: ``` with open('file.txt', 'r') as file: contents = file.read() print(contents) ``` 2. 如何在Python中写入文件? 使用Python内置的`open()`函数来打开文件并写入内容,示例代码如下: ``` with open('file.txt', 'w') as file: file.write('Hello, world!') ``` 3. 如何在Python中使用条件语句? Python中的条件语句使用关键字`if`、`elif`和`else`来实现,示例代码如下: ``` num = 5 if num > 0: print('正数') elif num < 0: print('负数') else: print('零') ``` 4. 如何在Python中使用循环语句? Python中的循环语句有`for`循环和`while`循环,示例代码如下: ``` # for循环 for i in range(1, 11): print(i) # while循环 num = 1 while num <= 10: print(num) num += 1 ``` 5. 如何在Python中定义函数? 使用关键字`def`来定义函数,示例代码如下: ``` def add_numbers(x, y): return x + y ``` 6. 如何在Python中导入模块? 使用`import`关键字来导入模块,示例代码如下: ``` import math print(math.pi) ``` 7. 如何在Python中处理异常? 使用`try`和`except`关键字来捕获异常并进行处理,示例代码如下: ``` try: num = int(input('请输入一个整数:')) print('输入的整数是:', num) except ValueError: print('输入的不是整数') ``` 希望这些答案能够帮助你更好地理解Python编程。 ### 回答2: Python考核汇总分为以下几个方面: 1. 数据类型和基本语法:包括数字、字符串、列表、元组、字典等常用数据类型的定义和操作,以及Python的基本语法,如变量的定义、条件判断、循环等。 2. 函数和模块:包括函数的定义和调用、参数的传递和返回值的使用等,以及如何导入和使用Python的模块来扩展功能。 3. 文件的读写操作:包括如何打开、读取和写入文件,以及文件的操作方法,如读取行、写入文件等。 4. 异常处理:包括如何处理程序中可能出现的异常情况,如try/except语句的使用,以及如何自定义异常类。 5. 面向对象编程:包括类的定义和实例化、属性和方法的使用、继承和多态等,以及面向对象的编程思想和设计原则。 6. 数据库操作:包括如何连接和使用数据库,如MySQL、SQLite等,以及进行增删改查等常用操作。 7. 网络编程:包括如何使用Python进行网络通信,如TCP/IP和UDP的Socket编程,以及HTTP请求和响应的处理等。 8. 正则表达式:包括正则表达式的基本语法和使用方式,以及常用的正则表达式方法和模块。 9. 多线程和多进程:包括如何使用Python进行多线程和多进程的编程,以及线程和进程之间的同步和通信等。 10. GUI编程:包括如何使用Python进行图形用户界面的开发,如使用Tkinter、PyQt等库进行界面设计和事件处理。 以上是Python考核的汇总内容,通过综合掌握以上知识点,可以进行Python编程的基本应用和开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值