编程题:

题一:把字符串转换成整数

把字符串转换成整数_牛客题霸_牛客网

示例1

输入:

"+2147483647"

返回值:

2147483647

思路一:

第一步:it从str的第一个字符开始遍历,定义一个最后输出的值你,以及判断结果正负的flag;

第二步:第一个为正则忽略,为负将flag改为负值;

第三步:遍历字符串,遇到非字母直接退出,否则记录下来;

第四步:最后得到的值n乘以判断正负的flag就是结果。

class Solution {

public:

int StrToInt(string str)

{

//it从str的第一个字符开始遍历

string::iterator it = str.begin();

int n = 0;

//由flag来决定结果的正负

int flag = 1;

//第一个为正则忽略,为负将flag改为负值

if(*it == '+' )

{

it += 1;

}

if(*it == '-')

{

flag = -1;

it += 1;

}

//遍历字符串,遇到非字母直接退出,否则记录下来

while(it != str.end())

{

if(*it < 48 || *it > 57)

{

return 0;

}

else

{

n *= 10;

n += *it - 48;

}

++it;

}

return n * flag;

}

};

题二:反转字符串

344. 反转字符串 - 力扣(LeetCode)

示例 1:

输入:s = ["h","e","l","l","o"]

输出:["o","l","l","e","h"]

思路一:

        没有啥好说的直接从第一个字符开始与最后一个字符一起替换!!!

class Solution {

public:

void reverseString(vector& s)

{

int left = 0;

int right = s.size() - 1;

//从第一个字符开始位置替换

while(left < right)

{

swap(s[left],s[right]);

++left;

--right;

}

}

};

思路二:

        直接用string类里的逆置接口reverse也可以直接完成反转!!!

class Solution {

public:

void reverseString(vector& s)

{

reverse(s.begin(),s.end());

}

};

题三:字符串中的第一个唯一字符

387. 字符串中的第一个唯一字符 - 力扣(LeetCode)

思路一:

第一步:定义一个记录字母的数组;

第二步:从下标为0开始遍历,记录字母对应数组下标的个数;

第三步:再次遍历字符串,将在数组中只出现一次的的字母对应字符串的下标返回;

第四步:如果第三步中遍历完以后没有找到只出现一次的字母,返回-1.

class Solution {

public:

int firstUniqChar(string s)

{

//定义一个记录字母的数组

int arr[26] = {0};

int it1 = 0;

//从下标为0开始遍历,记录字母对应数组下标的个数

while(it1 < s.size())

{

arr[s[it1] - 'a'] += 1;

++it1;

}

int it2 = 0;

//再次遍历字符串,将在数组中只出现一次的的字母对应字符串的下标返回

while(it2 < s.size())

{

if(arr[s[it2] - 'a'] == 1)

{

return it2;

}

++it2;

}

return -1;

}

};

思路二:

第一步: 分别对字符串进行正序查询和反序查询;

第二步: 如果所查询的字符下标相等,说明此字符只出现了一次。

class Solution {

public:

int firstUniqChar(string s)

{

for(int i=0; i

{

int index = s.find(s[i]);

int reverse_index = s.rfind(s[i]);

if(index == reverse_index)

return i;

}

return -1;

}

};

 本人实力有限可能对一些地方解释和理解的不够清晰,可以自己尝试读代码,或者评论区指出错误,望海涵!欢迎各位大佬在评论区探讨,交流!

如果本篇对你有帮助的话,三连支持一下吧。

感谢大佬们的一键三连! 感谢大佬们的一键三连! 感谢大佬们的一键三连!

                                              

相关阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: