大家好,又见面了,我是你们的朋友全栈君。
进制转换方法
1、字符串其他进制转整型十进制
int(s,2)
将字符串s当作二进制转换为10进制整型。如int('11',2)
的值为3。
int(s,16)
将字符串s当作十六进制转换为10进制整型。如int('11',16)
的值为17。
2、整型十进制转字符串其他进制
1、bin(x)
将整型十进制转换为二进制字符串。如bin(6)
的值为"110"
2、oct(x)
将整型十进制转换为八进制字符串。
3、hex(x)
将整型十进制转换为十六进制字符串。
【例】力扣第67题二进制求和:给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。
代码语言:javascript复制class Solution:
def addBinary(self, a: str, b: str) -> str:
x ,y= int(a,2),int(b,2)
res = x y
return bin(res)[2:]
ASCII转换方法
1、字符转ASCII
ord()
函数。如ord('a')
为97
2、ASCII转字符
chr()
函数。如chr(65)
为'A'
【例】力扣第409题最长回文串:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。
代码语言:javascript复制class Solution:
def longestPalindrome(self, s: str) -> int:
l = [0]*58
temp = 0
#创建一个记录字符串中字符的数组
for i in s:
l[ord(i)-ord('A')] =1
#统计数组中出现了奇数次字符的个数即为差值temp
for j in l:
if j%2!=0:
temp =1
#如果字符串中的字符全部是成对出现的,返回字符串的长度
if temp == 0:
return len(s)
#如果字符串中有temp个出现了奇数次的字符,比如aabbbccc,那么肯定要 删除一个b或者一个c才能构成回文字符串。
else:
return len(s)-temp 1
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144464.html原文链接:https://javaforall.cn