【每日刷题Day85】

【每日刷题Day85】

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

[1. 125. 验证回文串 - 力扣(LeetCode)](#1. 125. 验证回文串 - 力扣(LeetCode))

[2. 43. 字符串相乘 - 力扣(LeetCode)](#2. 43. 字符串相乘 - 力扣(LeetCode))

[3. 557. 反转字符串中的单词 III - 力扣(LeetCode)](#3. 557. 反转字符串中的单词 III - 力扣(LeetCode))

1. 125. 验证回文串 - 力扣(LeetCode)

//思路:双指针遍历。两头向中间遍历,判断是否有不同字母。

bool isPalindrome(char* s)

{

char* arr = (char*)malloc(sizeof(char)*strlen(s)+1);

int count = 0;

while(*s!='\0')

{

if(*s>='A'&&*s<='Z')

{

arrcount++ = *s+32;

}

if((*s>='a'&&*s<='z')||(*s>='0'&&*s<='9'))

{

arrcount++ = *s;

}

s++;

}

arrcount = '\0';

int left = 0;

int right = count-1;

while(left<=right)

{

if(arrleft!=arrright)

{

return false;

}

left++;

right--;

}

return true;

}

2. 43. 字符串相乘 - 力扣(LeetCode)

//思路:竖式乘法计算,使用数组累加每一位上的和,这么说可能听不懂,我们来看图理解

//注:两个数相乘后,其长度最大为两数的长度和,因为在使用数组存储时我们可以直接开两数长度之和的空间,从数组最后向前存储,这样可以省去翻转。

char* multiply(char* num1, char* num2)

{

int len1 = strlen(num1);

int len2 = strlen(num2);

char* ans = (char*)malloc(sizeof(char)*(len1+len2+1));

int count = 0;

if(num10=='0'||num20=='0')

{

ans0 = '0';

ans1 = '\0';

return ans;

}

int* arr = (int*)calloc(len1+len2,sizeof(int));

int flag1 = len1+len2-1;

for(int i = len1-1;i>=0;i--)

{

int flag2 = flag1;

for(int j = len2-1;j>=0;j--)

{

arrflag2--+=((num1i-'0')*(num2j-'0'));

}

flag1--;

}

int flag = 0;

for(int i = len1+len2-1;i>=0;i--)

{

arri+=flag;

flag = 0;

while(arri>=10)

{

flag++;

arri-=10;

}

}

int i = 0;

if(!arr0)

i = 1;

while(i<=len1+len2-1)

{

anscount++ = arri+++'0';

}

anscount = '\0';

return ans;

}

3. 557. 反转字符串中的单词 III - 力扣(LeetCode)

//思路:双指针遍历。初始两个指针都指向开头,让第一个指针先走,遇到' '时将两指针间的字符翻转,随后第二个指针指向第一个指针的下一个位置,继续让第一个指针走,重复上述过程直到遇到'\0'

//遇到'\0'后将最后一个单词翻转

void Reverse(char* s,int left,int right)

{

while(left<right)

{

char tmp = sleft;

sleft = sright;

sright = tmp;

left++;

right--;

}

}

char* reverseWords(char* s)

{

int prev = 0;

int pcur = 0;

while(spcur!='\0')

{

if(spcur==' ')

{

Reverse(s,prev,pcur-1);

prev = pcur+1;

}

pcur++;

}

Reverse(s,prev,pcur-1);

return s;

}

相关推荐
橘子汽水1685 分钟前
Leetcode 230,98:二叉搜索树中第K小的元素,验证二叉搜索树
算法·leetcode·职场和发展
m沐沐18 分钟前
【机器学习】DBSCAN聚类算法——原理、参数调优与实战
人工智能·python·深度学习·算法·机器学习·聚类·dbscan
问商十三载28 分钟前
GEO优化的6个核心诊断工具,2026年实操版详解
人工智能·算法·机器学习
手写码匠1 小时前
华为云征文|DeepSeek-R1 智能问数 Agent 实战:Flexus X 实例 + Dify 构建企业级 Text-to-SQL 查询助手
人工智能·深度学习·算法·aigc
mifengxing1 小时前
Java集合与泛型
java·算法·复习笔记
liulilittle1 小时前
[OPENPPP2] ssea 算法详解(中文)
算法·x86·x64·simd·openppp2·ssea·base94
碧海银沙音频科技研究院1 小时前
蓝牙耳机使用WSDF5361锂保芯片进入船运模式实现方法
嵌入式硬件·算法
过期的秋刀鱼!2 小时前
学习曲线-过拟合和欠拟合要做什么以及原因
人工智能·python·深度学习·算法·机器学习·模型评估
m沐沐2 小时前
【自然语言处理】词向量转换与中文文本情感分类——从CountVectorizer到朴素贝叶斯
人工智能·算法·机器学习·自然语言处理·分类·中文分词·词向量转换
脚踏实地皮皮晨2 小时前
003005002_WPF StackPanel 基类官方类定义逐行深度解析
开发语言·windows·算法·c#·wpf·visual studio