牛客
不爱喝水的大脸猫
这个作者很懒,什么都没留下…
展开
-
HJ1 字符串最后一个单词的长度
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)#include <iostream>#include <string>using namespace std;int main(){ string s; getline(cin,s); size_t pos = s.rfind(' '); if (pos == string::npos) { //没有找到 cout << s.size(原创 2022-03-03 21:29:27 · 583 阅读 · 0 评论 -
HJ73 计算日期到天数转换
描述根据输入的日期,计算是这一年的第几天。保证年份为4位数且日期合法。进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(1)\O(1)输入描述:输入一行,每行空格分割,分别是年,月,日输出描述:输出是这一年的第几天#include <iostream>using namespace std;int GetMonthDay(int year, int month){ int monthDayArray[13] = {0,31,28,31,30,31,30,31原创 2022-02-20 22:06:04 · 464 阅读 · 0 评论 -
牛客OR36 .链表的回文结构
对于一个链表,请设计一个时间复杂度为O(n), 额外空间复杂度为O(1)的算法,判断其是否为回文结构。给定一个链表的头指针A,请返回一个bool值,代表其是否为回文结构。保证链表长度小于等于900。思路1:找到链表的中间结点,然后拆开链表,分成两部分,将后半部分逆置,后半部分和前部分比较是否相等,只要有一个走到NULL了,就结束(1)偶数个(2)奇数个这种方法,要把链表拆开思路2:不拆链表(1)偶数个找到中间结点,中间结点后的部分逆置,不要拆开(2)奇数个stru原创 2022-01-06 16:34:09 · 1026 阅读 · 0 评论 -
牛客CM11 链表分割
现有一链表的头指针 ListNode* pHead,给一定值x,编写一段代码将所有小于x的结点排在其余结点之前,且不能改变原来的数据顺序,返回重新排列后的链表的头指针。如果不要求保持相对顺序不变,那么小于x的结点头插,大于x的结点尾插。但是要求保持相对顺序不变,这种方法就不适用。创建两个新链表,一个存放小于x的结点,一个存放大于x的结点,然后将两个链表链接起来。创建两个带哨兵位的头结点这里要注意,在原链表中,结点7的下一个结点是3,所以这里必须将结点7的next置为NULL,原创 2022-01-06 14:13:06 · 170 阅读 · 0 评论