125.验证回文串
//
// Created by wxj05 on 2024/7/22.
//
class Solution {
public:bool isPalindrome(string s) {string a;for(int i=0;i<s.size();i++){if(isalnum(s[i])){a+=tolower(s[i]);}}int i=0,j=a.size()-1;while(i<=j){if(a[i]!=a[j]){return false;}i++;j--;}return true;}
};
局部变量和字符串处理:
string a;
定义了一个空字符串a
,用于存储处理后的字符串。for
循环遍历输入的字符串s
,通过isalnum(s[i])
判断字符是否为字母或数字,如果是则将其转换为小写并追加到字符串a
的末尾。
回文判断:
- 定义了两个整数
i
和j
,分别初始化为字符串a
的首尾索引。 - 使用
while
循环进行回文检测,条件是i
小于等于j
。 - 在循环中,如果
a[i]
不等于a[j]
,则返回false
,表示不是回文。 - 如果相等,则继续向中间移动
i
和j
。
返回结果:
- 如果整个循环执行完毕,即
i > j
,则返回true
,表示字符串s
是回文。
功能和注意事项
- 该函数首先将输入字符串转换为只包含小写字母和数字的字符串,忽略了非字母和数字的字符。
- 然后使用双指针法进行回文检测,确保首尾字符依次相等。
- 考虑了字符串的大小写问题,通过
tolower()
函数将字符转换为小写进行比较。- 整体实现简洁高效,逻辑清晰,能有效地判断大部分情况下的回文字符串。
136.只出现一次的数字
//
// Created by wxj05 on 2024/7/22.
//
class Solution {
public:int singleNumber(vector<int>& nums) {for(int i=0;i<nums.size();i++){int a = count(nums.begin(),nums.end(),nums[i]);if(a==1) return nums[i];}return 0;}
};
局部变量和循环:
for
循环遍历整数数组nums
。- 在循环中,使用
count()
函数计算数组中当前元素nums[i]
的出现次数,并将结果赋给变量a
。 - 如果
a
等于 1,表示当前元素nums[i]
只出现了一次,那么就返回这个元素nums[i]
。
返回结果:
- 如果循环结束后仍未找到只出现一次的元素,则返回 0。
功能和注意事项
- 这段代码的实现思路是通过遍历数组和计数操作来寻找只出现一次的元素。
- 使用了
count()
函数来统计数组中特定元素的出现次数,然后根据计数结果进行判断。- 返回的是第一个发现的只出现一次的元素,因此假设数组中有且仅有一个元素是单独出现的,否则返回的结果可能不符合预期。
- 时间复杂度较高,为 O(n^2),因为在每次迭代中都调用了
count()
函数,这会导致多次遍历数组。
168.Excel表名称
//
// Created by wxj05 on 2024/7/22.
//
class Solution {
public:string convertToTitle(int columnNumber) {vector<string>arr={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};string zm="";int count;while(columnNumber>0){columnNumber--;count=(columnNumber%26);zm+=arr[count];columnNumber/=26;}reverse(zm.begin(),zm.end());return zm;}
};
变量和循环:
arr
是一个包含26个大写字母的字符串向量,用于表示Excel表格的列标题。zm
是一个空字符串,用于存储转换后的列标题。count
是一个整数变量,用于临时存储每次取模后的结果。
转换过程:
- 在
while
循环中,首先将columnNumber
减去 1,然后取columnNumber
对 26 取模,得到的结果是当前位上的字母在arr
中的索引。 - 将对应的字母添加到
zm
字符串末尾。 - 将
columnNumber
除以 26,继续处理下一位。 - 循环直到
columnNumber
不大于 0。
翻转字符串:
- 最后通过
reverse()
函数将zm
字符串反转,确保得到正确的Excel表格列标题顺序。
返回结果:
- 返回存储在
zm
中的最终结果,即转换后的Excel表格列标题。
功能和注意事项
- 这段代码实现了将整数
columnNumber
转换为相应Excel表格列标题的功能,遵循Excel列标题的表示规则。- 通过不断取模和除法操作,将整数转换为对应的字母序列。
- 注意在处理
columnNumber
时,每次循环前先将其减去 1,是为了确保从 1 开始的Excel列索引正确转换。