[9] Palindrome Number [Easy]

给一个数字,用不转化成字符串的方式判断它是否是回文。

先求数字长度,然后把数字的后半段做翻转(就是不断地取模,除10这种方式),然后判断前后半段是否相等

有特殊情况,负数,10的倍数, 和零

 class Solution {
public:
bool isPalindrome(int x) {
if (x < || x % == && x != ) {
return false;
}
//=============[1]先求数字长度
int len = ;
int tmpx = x;
while (tmpx / != ) {
tmpx /= ;
len++;
}
cout << len << endl; //=============[2]然后翻转后面一半数字
int reverse = ;
tmpx = x;
for (int i = ; i < len / + ; ++i) {
reverse = reverse * + (tmpx % );
tmpx /= ;
}
cout << tmpx << " " << reverse << endl; //=============[3]根据长度的奇偶性判断是否需要再除以10
if (len % == ) {
tmpx /= ;
}
if (tmpx != reverse) {
return false;
}
return true;
}
};

[157] Read N Characters Given Read4 [Easy]

给个read4的api,每次能从文件里面读四个字符,最多读N个字符,考虑到文件里面的字符数目可能比N小,所以不能直接返回N。

每次应该 加上 min(read4(buf + k),  n); 这种表达, 代码如下:

 // Forward declaration of the read4 API.
int read4(char *buf); class Solution {
public:
/**
* @param buf Destination buffer
* @param n Maximum number of characters to read
* @return The number of characters read
*/
int read(char *buf, int n) {
int res = , k = ;
while (n > ) {
int readN = min(read4(buf + k*), n);
n = n - ;
++k;
res += readN;
}
return res;
}
};

[168] Excel Sheet Column Title [Easy]

给个数字N,返回对应excel上面的列名。 比如1返回A,2返回B,27返回AA

26进制换算,有个N--原因需要注意。

 class Solution {
public:
string convertToTitle(int n) {
string ans = "";
while(n > ) {
n--; //在这里N--的原因是A对应1,Z对应26
unsigned int mod = n % ;
char ch = 'A' + mod;
ans = ch + ans;
n = n / ;
}
return ans ;
}
};

[266] Palindrome Permutation [Easy]

给个字符串,判断用它的字母能不能组成个回文串,秒杀

 class Solution {
public:
bool canPermutePalindrome(string s) {
map<char, int> mapCnt;
for (auto ele : s) {
mapCnt[ele]++;
}
int oddCnt = ;
for (auto ele : mapCnt) {
if(ele.second % ) {
oddCnt++;
if (oddCnt >= ) {
return false;
}
}
}
return true;
}
};

[500] Keyboard Row [Easy]

给N个单词,判断哪些单词的字母在键盘的同一行,输出这些单词。

 class Solution {
public:
set<char> setLine1{'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p'},
setLine2{'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l'},
setLine3{'z', 'x', 'c', 'v', 'b', 'n', 'm'}; int findGroup(char lowerChar) {
if (setLine1.find(lowerChar) != setLine1.end()) {
return ;
} else if (setLine2.find(lowerChar) != setLine2.end()) {
return ;
} else if (setLine3.find(lowerChar) != setLine3.end()){
return ;
}
return -;
} vector<string> findWords(vector<string>& words) {
vector<string> answer;
for(auto word : words) {
int groupId = ;
bool ansIn = true;
groupId = isupper(word[]) ? findGroup(tolower(word[])) : findGroup(word[]);
for (auto i = ; i < word.size(); ++i) {
int tmpGroupId = ;
tmpGroupId = isupper(word[i]) ? findGroup(tolower(word[i])) : findGroup(word[i]);
if (tmpGroupId != groupId) {
ansIn = false;
break;
}
}
if (ansIn) {
answer.push_back(word);
}
}
return answer;
}
};

【LeetCode】水题(刚开始重新刷题找感觉用的)的更多相关文章

  1. 在vscode中配置LeetCode插件,从此愉快地刷题

    大家好,今早在B站看到up主的vscode里藏了leetcode插件,这才知道原来还有这款神器.但是没想到在用的时候遇到了一些麻烦,花了一点时间才解决.所以写这篇文章除了给大家安利这个好用的插件之外, ...

  2. NOI题库分治算法刷题记录

    今天晚自习机房刷题,有一道题最终WA掉两组,极其不爽,晚上回家补完作业欣然搞定它,特意来写篇博文来记录下 (最想吐槽的是这个叫做分治的分类,里面的题目真的需要分治吗...) 先来说下分治法 分治法的设 ...

  3. 【套题】qbxt国庆刷题班D2

    D2 今天的题感觉还是好妙的 T1 传送门 Description 现在有一张\(n\)个节点\(m\)条边的无向连通图\(G=(V,E)\),满足这张图中不存在长度大于等于3的环且图中没有重边和自环 ...

  4. 【套题】qbxt国庆刷题班D1

    Day1 事实上D1的题目还是比较简单的= =然而D1T2爆炸了就十分尴尬--错失一波键盘 看题 T1 传送门 Description 现在你手里有一个计算器,上面显示了一个数\(S\),这个计算器十 ...

  5. 菜鸟刷题路(随缘刷题):leetcode88

    lc88 class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i = m - 1, j = ...

  6. LeetCode 到底怎么刷?GitHub 上多位大厂程序员亲测的高效刷题方式

    作者:HelloGitHub-小鱼干 在众多的诸如阿里.腾讯等大厂之中,最看中面试者刷题技能的大概要数有"链表厂"之称的字节跳动了.作为一个新晋大厂,字节跳动以高薪.技术大佬云集吸 ...

  7. 从小白到 6 个 offer,我究竟是怎么刷题的?

    最近自习室里又兴起了一阵刷题潮,大家相约刷题~ 今天和大家系统分享下我去年转行时的一个刷题过程和方法,希望对你有所帮助. 首先介绍下我的编程基础,我学的是金融工程专业,硕士时学过 C++ 的课,这也是 ...

  8. USACO刷题之路,开始了

    几天前,重新开始刷题了. 重新刷题有几个原因: 1.曾经的OI经历,如今除了悟性高些.知识多些,大多已经遗忘.不希望真的让之前的OI水平就这么丢了. 2.越来越觉得,刷题真的是一件很开心的事情.大学中 ...

  9. 为了考PMP,我做了一个刷题小程序

    一.背景 1.我是一名软件工程师,技术出身,担任开发组长,对项目管理不是很熟,所以决定系统学习下项目管理. 2.全球最适合的项目管理学习课程就是PMP,每年有4次PMP考试,证书还是很有含金量的. 3 ...

随机推荐

  1. go语言从例子开始之Example19.接口

    接口 是方法特征的命名集合. Example: package main import "fmt" //让方法,实现api这个接口. type api interface{ get ...

  2. js 模板引擎 -Art Template

    一个例子涵盖所有: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...

  3. Codeforces 1179D 树形DP 斜率优化

    题意:给你一颗树,你可以在树上添加一条边,问添加一条边之后的简单路径最多有多少条?简单路径是指路径中的点只没有重复. 思路:添加一条边之后,树变成了基环树.容易发现,以基环上的点为根的子树的点中的简单 ...

  4. HDU-4609(FFT/NTT)

    HDU-4609(FFT/NTT) 题意: 给出n个木棒,现从中不重复地选出3根来,求能拼出三角形的概率. 计算合法概率容易出现重复,所以建议计算不合法方案数 枚举选出的最大边是哪条,然后考虑剩下两条 ...

  5. js浮点解决

    function add(a, b) { var c, d, e; try { c = a.toString().split(".")[1].length; } catch (f) ...

  6. CentOS 6.9 安装配置zeromq、jzmq

    官方安装配置链接 安装zeromq 步骤一.准备C语言环境 yum -y install gcc-c++ 步骤二.解压缩zeromq tar -zxf zeromq-4.1.6.tar.gz 步骤三. ...

  7. 移动 web 端屏幕适配 - rem

    前言 最近整理了一下以前学习前端的笔记,发现自己对移动 web 端屏幕适配(rem)这一块并没有真正理解,只是会用.接下来,把自己的一些对移动 web 端屏幕适配(rem)的思考记录下来. rem 介 ...

  8. SPSS转换菜单:创建时间序列

    SPSS转换菜单:创建时间序列 1.概念:"创建时间序列"对话框允许您基于现有数值型时间序列变量的函数创建新的变量.这些转换后的值在时间序列分析中非常有用. 2.操作:转换-创建时 ...

  9. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  10. OAccflow集成sql

    SELECT * FROM PORT_EMP WHERE NO='18336309966'SELECT * FROM PORT_DEPT WHERE no='42DBAF50712C4046B09BC ...