力扣刷题(c语言)_力扣c语言题库答案-程序员宅基地

技术标签: 算法  c语言  leetcode  

9、回文数
题目描述:
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。

bool isPalindrome(int x){
    if(x < 0)return false;//负数不可能是回文数
    int y = 0;
    int b = x;
    int count=0;
    while(b>0)
    {
        b = b / 10;
        count++;//计算x位数
    }
    if(1 == count)return true;//一位数,是回文数
    b = x;
    for(int i = 0;i<(count/2);i++)//将x的前半部分倒过来给y
    {
        y = y*10 + b % 10;
        b = b / 10;
    }
    if(count%2!=0)y = y*10 + b % 10;//判断总位数是奇偶,奇位数则将b的第一位给y的最后一位
    if(y==b)return true;
    else return false;
}

13、罗马数字转整数
题目描述:
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符 数值
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。
给定一个罗马数字,将其转换成整数。

//解法1,直接判断当前字符是什么,然后判断是否与右边字符组合
int romanToInt(char * s){
    int sum = 0;
    int n;
    
    for(int i = 0;s[i] != '\0'; i++)
    {
        if(s[i] == 'I')
        {
            if(s[i+1] == 'V') {n = 4; i++;}
            else if(s[i+1] == 'X'){n = 9; i++;}
            else n = 1;
        }
            
        else if(s[i] == 'V') n = 5;
        else if(s[i] == 'X')
        {
            if(s[i+1] == 'L') {n = 40; i++;}
            else if(s[i+1] == 'C'){n = 90; i++;}
            else n = 10;
        }
        else if(s[i] == 'L') n = 50;
        else if(s[i] == 'C') 
        {
            if(s[i+1] == 'D') {n = 400; i++;}
            else if(s[i+1] == 'M'){n = 900; i++;}
            else n = 100;
        }
        else if(s[i] == 'D') n = 500;
        else if(s[i] == 'M') n = 1000;
        sum = sum + n;
    }
    return sum;
}

//解法2,通常情况下,罗马数字中小的数字在大的数字的右边
//判断右边数字是否比当前的大,是则减去当前的,否则加上当前
int romanToInt(char* s) {
    int symbolValues[26];
    symbolValues['I' - 'A'] = 1;
    symbolValues['V' - 'A'] = 5;
    symbolValues['X' - 'A'] = 10;
    symbolValues['L' - 'A'] = 50;
    symbolValues['C' - 'A'] = 100;
    symbolValues['D' - 'A'] = 500;
    symbolValues['M' - 'A'] = 1000;
    int ans = 0;
    int n = strlen(s);
    for (int i = 0; i < n; ++i) {
        int value = symbolValues[s[i] - 'A'];
        if (i < n - 1 && value < symbolValues[s[i + 1] - 'A']) {
            ans -= value;
        } else {
            ans += value;
        }
    }
    return ans;
}

14、最长公共前缀
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。

char * longestCommonPrefix(char ** strs, int strsSize){
    for(int j = 0;strs[0][j] != '\0';j++)
        for(int i = 0;i < strsSize - 1;i++)
            if(strs[i][j]==strs[i+1][j]);
            else
            {
                strs[0][j] = '\0';
                return strs[0];
            }
            return strs[0];
}```

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_61562743/article/details/127688803

智能推荐

java poi-tl处理world动态表格_dynamictablerenderpolicy+-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏12次。简单的模板处理可以参考以下链接:https://blog.csdn.net/liushimiao0104/article/details/78520120我用的是一下版本 <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</..._dynamictablerenderpolicy+

【keras-DeepLearning_Models】_obtain_input_shape() got an unexpected keyword argument 'include_top'_shape为什么报错-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏11次。最近想跑一些主流的网络感受感受。从github上找到了 deep-learning-models 提供的几个模型,包括:inception-v2, inception-v3, resnet50, vgg16, vgg19 等等。这些代码都是基于 keras 框架,正好我最近有在学 tensorflow 和 keras,所以很想跑跑这些代码。心动不如行动,准备工作都做得差不多了,准备开始跑代码。此时,出现了一些常见的问题,也正好借此机会整理下来。_shape为什么报错

windowsXP下安装Qt4.8_xp的系统装qt-程序员宅基地

文章浏览阅读1.5k次。参考1:http://blog.csdn.net/areswhy/article/details/8697527参考2:http://www.cnblogs.com/emouse/archive/2013/01/29/2881721.html(windows下Qt安装部分)前记:一两个月以后就要找工作了,本来想学学embedded-linux Qt,无奈电脑老旧,用的虚拟机装的ubuntu_xp的系统装qt

KNN Python-Iris Data Set (鸢尾属植物数据集)_iris_data.mat-程序员宅基地

文章浏览阅读2.2k次。Iris数据集概况Iris Data Set(鸢尾属植物数据集)是我现在接触到的历史最悠久的数据集,它首次出现在著名的英国统计学家和生物学家Ronald Fisher 1936年的论文《The use of multiple measurements in taxonomic problems》中,被用来介绍线性判别式分析。在这个数据集中,包括了三类不同的鸢尾属植物:Iris Setosa,I..._iris_data.mat

解决React在安装antd之后出现的Can't resolve './locale'或者浏览器显示Cannot find module './locale’问题的两种方案_react脚手架 can't resolve './const-程序员宅基地

文章浏览阅读1.1w次,点赞4次,收藏3次。React在安装antd之后出现的Can’t resolve './locale’或者浏览器显示Cannot find module './locale’问题,是因为moment的版本有问题,而react默认使用了最新的moment,但是在[email protected]中是没有问题的。1.第一种解决方法解决方案就是配置webpack的alias,将所有的 moment 路径引用导入到 [email protected]操作步骤安装moment 依赖 npm install [email protected]_react脚手架 can't resolve './const

Redis之下载与安装(二)_(二)redis下载和安装-程序员宅基地

文章浏览阅读161次。其实Redis并不正式支持windows版本,官网那个5.0.x稳定版其实是linux版本_(二)redis下载和安装

随便推点

成功解决numpy.core._internal.AxisError: axis -1 is out of bounds for array of dimension 0_numpy.axiserror: axis 1 is out of bounds for array-程序员宅基地

文章浏览阅读3.2w次,点赞4次,收藏16次。成功解决numpy.core._internal.AxisError: axis -1 is out of bounds for array of dimension 0目录解决问题解决思路解决方法解决问题numpy.core._internal.AxisError: axis -1 is out of bounds f..._numpy.axiserror: axis 1 is out of bounds for array of dimension 0

双电阻差分电流采样_利用采样保持放大器和RF ADC从根本上扩展带宽以突破X波段频率...-程序员宅基地

文章浏览阅读431次。摘要模拟带宽的重要性高于其他一切在越来越多的应用中得到体现。随着GSPS或RF ADC的出现,奈奎斯特域在短短几年内增长了10倍,达到多GHz范围。这帮助上述应用进一步拓宽了视野,但为了达到X波段(12 GHz频率),仍然需要更多带宽。在信号链中运用采样保持放大器 (THA),可以从根本上扩展带宽,使其远远超出ADC采样带宽,满足苛刻高带宽的应用的需求。本文将证明,针对RF市场开发的最新..._分流器采样差分电路

zencart1.55stripe信用卡内嵌支付获取卡号_zencart 回调方法checkout_process 提交参数-程序员宅基地

文章浏览阅读7.4k次。zencart1.55内嵌支付获取卡号_zencart 回调方法checkout_process 提交参数

pl/sql---约束_plsql里面约束在哪显示-程序员宅基地

文章浏览阅读474次。多表连接一.什么是约束二,注意三,表级约束和列级约束命令行:四,定义约束五,unique约束命令语句:六,主键约束命令语句01:命令语句02:七,foreign key 约束命令语句:七,foreign key 约束的关键字八,check 约束命令行:..._plsql里面约束在哪显示

javax.net.ssl.SSLException: Received fatal alert: internal_error 解决-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏2次。javax.net.ssl.SSLException: Received fatal alert: internal_error_javax.net.ssl.sslexception: received fatal alert: internal_error

Oracle & 神通数据库 清空所有表数据操作_神通数据库清除数据的脚本-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏2次。1、拼接处truncate所有表的语句select 'truncate table '||table_name||';' from user_tables;2、Ctrl+A全选,粘贴至命令行,执行Over._神通数据库清除数据的脚本

推荐文章

热门文章

相关标签