网易雷火测试题--重复字符编码

题目

给定一个字符串,请你将字符串重新编码,将连续的字符替换成“连续出现的个数+字符”。比如字符串AAAABCCDAA会被编码成4A1B2C1D2A。

答案

import java.util.Scanner;

public class 重复字符编码2 {
    public static void main(String[] args) {
        int count=1;
        Scanner sc = new Scanner(System.in);
        String arr = sc.nextLine();
        arr+="1";
        for(int i=0;i<arr.length()-1;i++){
            if(arr.charAt(i)==arr.charAt(i+1)){
                count+=1;
            }
            else {
                System.out.print(count);
                System.out.print(arr.charAt(i));
                count=1;
            }
        }
    }
}

思路

给原本的字符串末尾添加一个肯定和其他字符不等的字符(例如1),巧妙解决边界问题

### 关于网易雷火游戏策划笔试题及相关准备资料 针对网易雷火的游戏策划岗位,虽然具体的笔试题目可能因年份和批次有所不同,但从已有的参考资料来看,可以总结一些常见的考察方向以及备考建议。 #### 常见考试形式与内容 根据已有信息[^1],网易雷火的校招面试通常会涉及以下几个方面: - **计算机科学基础知识**:包括数据结构、算法设计等内容。这些知识点对于理解游戏逻辑实现至关重要。 - **游戏编程基础**:熟悉C++或其他常用开发语言的基础语法及高级特性。例如,在处理复杂场景时如何优化性能等问题。 - **游戏网络编程**:了解客户端服务器架构原理及其在网络环境下的应用实践情况。 具体到游戏策划职位上,则更加注重创意构思能力与实际操作技巧相结合的能力测试: ##### 创意思维类问题 这类题目主要评估应聘者能否提新颖有趣且具有可行性的设计方案。比如,“如果让你负责一款多人在线竞技类手游,描述其核心玩法机制。” 这种类型的提问不仅考验考生的知识储备量,还要求他们能够灵活运用所学理论解决现实中的产品需求分析工作。 ##### 数理逻辑推理型挑战 除了创意外,还需要具备一定的数理思维来支持决策过程中的定量分析环节。“给定一组玩家行为统计数据,计算并解释某项指标的变化趋势”,此类任务旨在检验候选人是否能通过数据分析得有价值的结论用于指导后续的产品迭代计划制定等工作当中去执行落实到位才行啊亲! 另外值得注意的是时间管理也很重要哦!正如一位参加过该企业考核的朋友提到自己用了三个小时完成了四道不同难度级别的程序编写作业之后表示尽管大部分都能顺利完成但是由于前期花费较多精力导致最后剩余少量未完全解答完毕的部分遗憾失分啦所以提醒大家合理分配作答顺序哟~[^2] 至于像关于分割数组这样的技术性较强的小练习则可能是为了进一步筛选那些既懂业务又擅长编码的同学而设置来的附加项目之一吧?毕竟作为现代数字化娱乐产业的一员我们不仅要懂得怎么讲故事还要学会用代码把它变成真实可玩的作品呢😊[^3] ```python def max_sum_of_subarrays(nums, k): n = len(nums) prefix_sums = [0]*(n+1) for i in range(1,n+1): prefix_sums[i]=prefix_sums[i-1]+nums[i-1] dp=[[float('-inf')]* (k+1)for _ in range(n)] dp[0][1]= nums[0] for j in range(2,k+1): stack=[] for i in range(j-1,n): while(stack and ((prefix_sums[i]-prefix_sums[stack[-1]])/(i-stack[-1]) >= \ (prefix_sums[stack[-1]]-prefix_sums[j-2]) / (stack[-1]-(j-2)))): stack.pop() if stack: prev=stack[-1] dp[i][j]=max(dp[i][j],dp[prev][j-1]+sum(nums[prev+1:i+1])) temp=(prefix_sums[i]-prefix_sums[j-2])/(i-j+2) while(stack and (prefix_sums[i]-prefix_sums[stack[-1]])/(i-stack[-1])<=temp): stack.pop() stack.append(i) return max([dp[n-1][c] for c in range(1,min(k+1,n)+1)]) ``` 以上是一个简单的例子展示了如何利用动态规划方法求解最大连续子序列之和的问题变体——即将原列表划分为指定数量区间后的最优结果是什么样子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值