找到指定的新类型字符
生活随笔
收集整理的這篇文章主要介紹了
找到指定的新类型字符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:
新類型的字符定義如下:
1、新類型字符是長度為1或2的字符串
2、表現形式可以僅是小寫字母,也可以是大寫字母+小寫字母,也可以是大寫字母+大寫字母。例如,a,Bc,DD都是符合條件的新類型字符。
現在給定一個字符串str,str一定是若干新類型字符正確組合的結果。比如“eaCCBi”,由新類型字符“e”,“a”,“CC”,“Bi”拼成。再給定一個整數k,代表str中的位置。請返回被k位置指中的新類型字符。
舉例:
str = “aaABCDEcBCg”.
k = 7時,返回“Ec”
k = 4時,返回“CD”
k = 10時,返回“g”
基本思路:
一種笨方法是從左向右遍歷,依次劃出新類型字符,到k位置時就知道指定的新類型字符是什么。這里不在詳述。
更快的方法。從k-1位置開始,向左統計大寫字母的個數記為uNum,遇到小寫字母就停止。
? ? ? ? ?1、如果uNum為奇數,str[k-1…k]就是被指中的新類型字符
? ? ? ? ?2、如果uNum為偶數且str[k]為大寫,則str[k…k+1]就是被指中的新類型字符
? ? ? ? ?3、如果str[k]為小寫,str[k]就是被指中的新類型字符
def pointNewchar(s,k):if s == None or len(s) == 0 or k < 0 or k > len(s):return ""num = 0for i in range(k-1,-1,-1):if s[k].islower():breaknum +=1if num & 1 == 1: //為奇數return s[k-1:k+1]elif s[k].isupper(): //偶數 大寫return s[k:k+2]else: //偶數 小寫return s[k]
?
總結
以上是生活随笔為你收集整理的找到指定的新类型字符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 翻转字符串
- 下一篇: 数组的partition调整