Python进制转换与ASCII转换

2022-08-31 09:22:30 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

进制转换方法

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

0 人点赞