字符串问题---找到被指的新类型字符
2017-08-23 21:42
155 查看
【题目】
新类型的字符定义如下:
新类型字符是长度为1或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,遇到小写字母就停止。如果uNum为奇数,str[k-1…k]就是被指中的新类型字符。如果uNum为偶数且str[k]为大写,则str[k…k+1]就是被指中的新类型字符;如果str[k]为小写,str[k]就是被指中的新类型字符。
下面是使用python3.5实现的代码。
新类型的字符定义如下:
新类型字符是长度为1或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,遇到小写字母就停止。如果uNum为奇数,str[k-1…k]就是被指中的新类型字符。如果uNum为偶数且str[k]为大写,则str[k…k+1]就是被指中的新类型字符;如果str[k]为小写,str[k]就是被指中的新类型字符。
下面是使用python3.5实现的代码。
#找到被指的新类型字符 def pointNewChar(str1, k): if str1 == None or len(str1) == 0 or k < 0 or k >= len(str1): return "" uNum = 0 for i in range(k-1, -1, -1): if str1[i].islower(): break uNum += 1 if uNum & 1 == 1: return str1[k-1 : k+1] elif str1[k].isupper(): return str1[k : k+2] else: return str1[k]
相关文章推荐
- 字符串问题---找到字符串的最长无重复字符子串
- 字符串和多个char类型的字符相加比较问题
- C#中数组数据类型字符串转double型问题
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。
- 反射技术显示类型的应字符串问题
- 关于限制文本框输入字符类型的问题
- 在一个字符串中找到第一个只出现一次的字符。
- 在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- IntelliJ IDEA 编译时报错:“编码GBK的不可映射字符”,"未结束的字符串字面值"和非法的类型开始
- 找到字符串中第一个出现一次的字符
- tyvj 1170 0/1字符串问题 字符串中仅包含0和1两个字符;②字符串的长度为n;③字符串中不含有三个连续的相同子串 搜索
- SQLQuery 查询Oracle char类型返回一个字符有关问题
- 移植性问题のCString类型转换,字符串操作和UNICODE、ANSI字符集
- C语言中用scanf连续输入两个字符类型的问题
- 138。编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的。
- 尚硅谷 第三课全 java-变量类型转换-字符与字符串-算数运算符-赋值运算符-三元运算符-.switch语句-循环结构-while 循环语句 do-while 循环语句
- 26.在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置
- 二维数组、字符数组、指针数组涉及字符串和具体元素问题
- c++字符指针与字符串的问题
- Java删除字符串中重复的String类型的字符