字串專題

2021-10-01 05:03:59 字數 2845 閱讀 5191

'''

created on 2023年12月1日

@author: hp

''''''擷取字串'''

str2="我是迪迦奧特曼"

str3=str2[:5]

str4=str2[0:len(str2):2]

print(str3,str4)

# 擷取的字串如果不存在,會出現異常,可以用try...except捕捉異常

try:

str5=str2[10]#取出10下標上的字元

print(str5)

except indexerror:

print("指定索引不存在")

'''分割字串'''

str6="1,2,3,4,5,6,7"

str7=str6.split(',', -1)#第乙個引數為分割字元,第二個引數為分割幾個,-1或不寫表示無限制

print(str7)

str8='迪 迦 奧 特 曼 >>> 3,000萬年前'

print(str8)

list0=str8.split(' ')#該分割連續出現空格時會分割出來空字元,但是下面一行的方式並不會出現空字元

list1=str8.split() #不指定引數預設按照空格分割

list2=str8.split('>>>')

list3=str8.split(',')

list4=str8.split(' ',4)

print(str(list0)+'\n'+str(list1)+'\n'+str(list2)+'\n'+str(list3)+'\n'+str(list4))

'''count 方法 '返回指定字串中某個字串出現的次數'''

start=0

end=5

print(str8.count(' ',start,end))#start與end為可選引數可以省略

'''find 方法如果不存在返回-1,否則返回索引'''

print(str8.find('曼'),str8.find('#'))

'''in關鍵字也可以判斷是否存在某字串'''

print('奧 特 曼' in str8)

'''rfind()方法與find()幾乎相同,區別是從右邊開始查詢'''

'''index()方法與find()方法依舊相同,只是如果不存在程式會丟擲異常'''

try:

'奧特曼'.index('aa')

except : print('程式丟擲異常')

'''rindex()方法類似於rfind()方法 '''

'''startswith()方法 endswith()方法用法與find相同,判斷是否以某一字串開始或結束'''

'''lower()方法將字串轉換成小寫字母,upper()將小寫子母轉換成大寫'''

str9="abcdefg"

print(str9.lower())

print(str9.upper())

'''strip()方法可以去除字串左右兩端的空格 回車符 換行符 製表符,lstrip()方法只去除左端,rstrip()方法只去除右端,加引數的話就表示去除對應引數'''

str10=" 123 "

print(str10.lstrip()+'*')

print(str10.rstrip()+'*')

print(str10.strip()+'*')

str10="123"

print(str10.strip('1'))

'''格式化字串'''

#'%[-][+][0][m][.n]格式化字串'%exp

# 支援格式化輸出元組,但不支援格式化輸出列表

#也可以格式化輸出單個數

template='編號: %09d\t公司名稱: %s \t 官網: http://www.%s.com'

context2=(8,'明日學院','migrixueyuan')

print(template%context2)#編號: 000000008 公司名稱: 明日學院 官網:

print('這個數字是:%5d'%123)#這個數字是: 123

'''除以上方法外,python還提供了乙個format()方法用以格式化輸出字串'''

#str.format(args)

'''模板語法格式'''

#'''

index表示指定的要輸出的內容的位置,如0表示第乙個要輸出的,如果省略,表示從前到後,如果手動填寫索引,

那麼之後呢每乙個都需要填寫,否則會丟擲異常.

fill表示用指定的字元填充空白

align表示對其方式 《表示右對齊 >表示左對齊 =表示內容右對齊 並把符號放在填充內容的左側 且只對數字型別有效 ^ 表示居中

sign表示有無符號數 +表示證書加正號,負數加負號 ;-表示正數不變,負數加負號; 空格表示正數加空格,負數加負號

#對於輸出二進位制,八進位制,十六進製制時,加上#會顯示0b/0o/0x字首

width表示指定寬度

.precision表示保留幾位

type指定型別即s c d e g b o x f %

'''template='編號:\t公司名稱:\t官網:http://www..com'

context2=template.format('8','明日學院','mingrisoft')

print(context)

print(context2)

t=''#+****5.210

t=''#****+5.210

t=''#+5.210****

print(t.format(5.21))

字串專題

給定乙個字串,你的任務是計算這個字串中有多少個回文子串。具有不同開始位置或結束位置的子串,即使是由相同的字元組成,也會被視作不同的子串。示例1 輸入 abc 輸出 3 解釋 三個回文子串 a b c 示例 2 輸入 aaa 輸出 6 解釋 6個回文子串 a a a aa aa aaa 解法 1 動態...

字串專題

1.double ceil double x 求大於 x 的最小的數,即向上取整函式 includeusing namespace std intmain 2.a 65 z 90 a 97 z 122 3.字串刪除 c 從string中刪除所有的某個特定字元 超好 includeusing name...

字串專題

一直以來字串和數論都是我的弱項,是時候從字串開始改善一下了。然而有些題目並不會寫 只是給個一句話題解。字尾陣列,lcp轉換為求區間min。分別統計a到b b到a的貢獻,單調棧搞一搞。位置重合時特殊處理。隨便用什麼資料結構統計每個串出現的位置,然後暴力做。由於保證詢問字串互不相同,可以一波分析複雜度發...