供参考:
#include <stdio.h>
#include <string.h>
int main()
{
int len, cnt, i, j;
char str[1001] = { 0 };
gets(str);
for (i = 0, cnt = 0, len = strlen(str); i <= len; i++)
{
if (str[i] == '6')
cnt++;
else{
if (cnt > 9)
printf("27");
else if (cnt > 3)
printf("9");
else{
for(j = 0;j < cnt; j++)
printf("6");
}
cnt = 0;
if (str[i])
printf("%c", str[i]);
}
}
return 0;
}
Python代码
#!/sur/bin/nve python
# coding: utf-8
def change6(string):
''' 替换字符串中的6 '''
sixs = [] # 暂存连续6字符串的列表。
temp = ''
for i in range(len(string)-1):
if string[i] == '6':
temp += string[i]
if string[i+1] == '6':
continue
elif string[i+1] != '6':
if len(temp) > 3:
sixs.append(temp)
temp = ''
if len(temp) > 3:
sixs.append(temp+'6') # 添加句末6。
for i in sixs[::-1]:
l = len(i)
new = '9' if 3 <= l <= 9 else '27' if l > 9 else ''
string = string.replace(i, new)
return string
if __name__ == '__main__':
string = 'it is So 666 really 6666 what else can I say 6666666666'
print(f"\n输入:\n{string}\n\n输出:\n{change6(string)}")
def change64(string):
''' 替换字符串中的6 '''
sixs = [] # 暂存连续6字符串的列表。
k, l = 0, 1
while k < len(string)-1:
if string[k] == '6':
if string[k+1] == '6':
k += 1
l += 1
continue
elif string[k+1] != '6':
if l > 3:
sixs.append(l)
l = 1
k += 1
if l > 3:
sixs.append(l) # 添加句末6。
sixs.sort(reverse=True) # 对6列表排逆序序。
#input(sixs) # 调试代码用语句。
for i in sixs:
new = '9' if i <= 9 else '27'
string = string.replace('6'*i, new)
#print(string) # 调试代码用语句。
return string
代码
#!/sur/bin/nve python
# coding: utf-8
import re
def change6(string):
''' 替换字符串中的6 '''
sixs = sorted(re.findall(r'\d{4,}', string), key = lambda x: len(x), reverse=True) # re提取字符串中的连续6,并以长度排逆序。
for i in sixs: # 遍历替换连续6。
l = len(i)
new = '27' if l > 9 else '9'
string = string.replace(i, new)
return string
if __name__ == '__main__':
string = 'It is so 666 really 6666 what else can I say 6666666666.'
print(f"\n输入:\n{string}\n\n输出:\n{change6(string)}")
【以下回答由 GPT 生成】
对于这个问题,我会尽力帮助你解决。请将你遇到问题的代码部分贴出来,我会尽快回复你。
【相关推荐】