顺丰科技历年秋招笔试真题

如需获取完整资料,请点击下方链接领取《2024校招笔试真题秘籍》(实时更新中)

不收费,3人组团即可一块免费领取!限量免费10000个名额

手机端点击免费领取:https://www.nowcoder.com/link/campus_xzbs2

电脑端请扫码领取:

1、单词数组左右对齐

【题目描述】给定一个单词数组和一个长度maxWidth,重新排版单词,使其成为每行恰好有maxWidth个字符,且左右两端对齐的文本。

你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格' '填充,使得每行恰好有maxWidth个字符。

要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。

文本的最后一行应为左对齐,且单词之间不插入额外的空格。

说明:

单词是指由非空格字符组成的字符序列。每个单词的长度大于 0,小于等于maxWidth。输入单词数组words至少包含一个单词。

输入样例:

words = ["What","must","be","acknowledgment","shall","be"]

maxWidth = 16

输出样例:

'What must be'

'acknowledgment '

'shall be '

解释: 

注意最后一行的格式应为 "shall be " 而不是 "shall be",

因为最后一行应为左对齐,而不是左右两端对齐。

第二行同样为左对齐,这是因为这行只包含一个单词。

难度:4级

时间限制:C/C++语言1000MS;其他语言3000MS

内存限制:C/C++语言65536KB;其他语言589824KB

输入描述:

一个单词数组和一个长度 maxWidth

输出描述:

重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本

输入样例:

Today,I,consider,myself,the,luckiest,man,on,the,face,of,the,earth.

16

输出样例:

'Today I consider'

'myself the'

'luckiest man on'

'the face of the'

'earth. '

提示:

public class Main {

 

public static void main(String[] args) {

        String str1 = "What,must,be,acknowledgment,shall,be";

        String str2 = "16";

        

List result = fullJustify(str1.split(","), Integer.valueOf(str2));

for(String str : result){

System.out.println("'"+str+"'");

}

}

 

/**

 * TODO 算法实现

 * @param words 单词数组

 * @param maxWidth 每行长度

 * @return 结果集合

 */

public static List fullJustify(String[] words, int maxWidth) {

}

}

【解题思路】

按题意模拟。

先解析出所有词,贪心的往每行中放尽量多的词,如果放不下,稍加计算即可得出单词间的空格数。

 

【参考代码】

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
char s[N];
int w;

int main() {
    scanf("%s%d", s, &w);
    int n = strlen(s);
    s[n++] = ',';
    vector<string> words;
    string word = "";
    for(int i = 0; i < n; ++i) {
        if(s[i] == ',') {
            words.push_back(word);
            word = "";
        }else {
            word += s[i];
        }
    }
    vector<string> line;
    int width = -1;
    int space = w;
    for(string word : words) {
        if(width + word.size() + 1 > w) {
            int m = line.size();
            if(m == 1) {
                line[0] += ' ';
                printf("\'%-*s\'\n", w, line[0].c_str());
            }else {
                int gap = space / (m - 1);
                int extra = space % (m - 1);
                putchar('\'');
                for(int i = 0; i < m; ++i)

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024软件笔试真题+答案合集 文章被收录于专栏

本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题,内容中包含多个名企的笔试真题,附有题目思路及参考代码

全部评论

相关推荐

已经入职字节快一个月了,突然想起来之前那段时间的面经没有发,先发一下timeline吧。Tiktok&nbsp;内容安全平台(人才库电话捞我):电话10.28&nbsp;-&gt;&nbsp;一面10.30(我觉得你跟我们组业务挺match的,然后过了三天问hr挂了,应该是别人流程更快)阿里淘天:投递11.11-&gt;约面11.12-&gt;一面11.14(问得很简单,30分钟,手撕八股全过无后续)Kpi面腾讯wxg&nbsp;微信小程序:投递11.13&nbsp;-&gt;约面11.14-&gt;&nbsp;一面11.17&nbsp;(究极无敌拷打,问我多模态大模型涉及的算法?但是人很好)-&gt;11.19流程终止小红书&nbsp;风控平台:投递11.16&nbsp;—约面11.17&nbsp;&nbsp;-&gt;一面11.18&nbsp;(抽象的面试官,面试感觉一般,问得前端网页安全相关的,确实没准备)-&gt;11.20挂百度&nbsp;百家号:投递11.14&nbsp;—&gt;约面11.14&nbsp;-&gt;一面11.14(当场约2面)-&gt;二面11.24-&gt;口头告知offer,&nbsp;拒绝(原因是业务不太好)美团&nbsp;技术平台投递11.17&nbsp;-&gt;&nbsp;约面(忘记了,没多久)&nbsp;-&gt;一面11.19&nbsp;-&gt;二面11.21&nbsp;(字节offer不想面了)快手&nbsp;电商业务投递11.17&nbsp;-&gt;&nbsp;约面11.18&nbsp;-&gt;一面11.19&nbsp;-&gt;&nbsp;二面11.21(拒了)腾讯wxg&nbsp;微信支付(被捞):(直接发面试邮件)技术一面12.05&nbsp;-&gt;技术二面12.11&nbsp;-&gt;技术三面12.17&nbsp;-&gt;&nbsp;hr面已拒绝(了解业务后拒绝,但是有转正hc,感觉还蛮可惜)字节跳动&nbsp;xxxx:东家就不放具体的时间线了,大概是面完第二天就能知道结果,除了有几天ld请假了没填面评。不去wxg还有个原因是还在期末周,深圳学校来回太麻烦了,至少现在在的组感觉能学到很多的东西,自己的选择应该也没错。还是感概一下,一年前大二的时候投简历海投基本上石沉大海,无论大小厂约面比例很少。现在基本上投了就有面试,还都是以前梦寐以求的大厂,现在自己也有了更多的选择,也没有投太多简历。也感谢上一段实习的经历,很有意思的项目,无论是字节,腾讯,还是美团基本都有聊这个项目。面经需要等一下,也许等周末有空了再发给各位uu,感兴趣可以关注一下~有想要交流学习的同学也可以私信我,目前人在北京大钟寺~,可以找搭子~
正能量的牛可乐:这么多大厂面试下来,不仅摸清了不同公司的面试风格,还能精准避雷业务不匹配的岗位,血赚
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务