170325德勤笔试编程题汇总

在17年3月25日那天早上,德勤对digital班级CRM方向的学员进行了考核,30多个学员中不到15个来参加了笔试部分,现将题目和答案汇总于此,仅供学习!

一、题目

A公司是一家在互联网上销售产品的电子商务公司,他们实施了salesforce CRM,为了更好的追踪客户对他们产品的真实评价,德勤管理咨询的顾问们为其设计了一套基于深度学习的评论分析系统,并要把分析结果在salesforce里共享给各级售前售后人员。现在需要对用户评论进行处理,其中一个需求是统计用户评论(全英文)中出现的单词个数,并将统计结果存入数据库供分析建模使用。

利用Apex提供的函数尝试实现如下接口:

1.    统计文本中出现的单词个数,

Map<String, Integer>wordCount(String text);

输入text为一段英文文本

输出为单词为key, 单词出现数量为value的映射表。

举例:

System.debug(wordCount('I likeyour product, your product is durable! I like Apex and visualforce!'));

输出结果为:

{Apex=1, I=2, and=1, durable=1,is=1, like=2, product=2, visualforce=1, your=2}

2.    对统计结果进行排序的接口

List<String>wordSort(Map<String,Integer> wordCountMap);

输入为单词统计结果的映射表;

输出为按照单词出现次数排序的单词序列;

输入为:

System.debug(wordSort(wordCount('Ilike your product, your product is durable! I like Apex and visualforce!')));

输出为:

(I, like, your, product, is,durable, Apex, and, visualforce)

3.    因为A公司电商规模和评论数量呈指数增长,某些数值统计运算结果或者中间值超出了Apex基本类型的范围。我们不得不提供支持超大数字(只考虑自然数)的加法运算接口。

String add(String a, String b);

输入:

System.debug(add('111222','222333'));

System.debug(add('888888888888888888888888888889','111111111111111111111111111111'));

输出:

333555

1000000000000000000000000000000


二、答案及执行

1、code

public class Deloitte_CountWordsNumbers {
	public static Map<String, Integer> wordCount(String text){
    	if(String.isBlank(text)) return null;
    	List<String> words = text.split('\\W|_');
    	Map<String, Integer> wordMap = new Map<String, Integer>();
    	for(String word:words){
    		if(String.isBlank(word)) continue;
    		Integer count = wordMap.get(word);
    		if(null == count){
    			wordMap.put(word, 1);
    		}else{
    			count++;
    			wordMap.put(word, count);
    		}
    	}
    	return wordMap;
    }
}
String s = 'I like your product, your product is durable! I like Apex and visualforce!';
Map<String, Integer> m = Deloitte_CountWordsNumbers.wordCount(s);
System.debug(m);
2、code

public with sharing class Deloitte_WordsSort {
    //选择排序
    public static List<String> wordSort(Map<String,Integer> wordCountMap){
    	if(wordCountMap == null || wordCountMap.isEmpty()){
    		return null;
    	}
    	List<String> sl = new List<String>(wordCountMap.keySet());
    	if(sl.size()==1) return sl;
    	for(Integer i=0;i<sl.size()-1;i++){
    		for(Integer j=i+1;j<sl.size();j++){
    			if(wordCountMap.get(sl[i]) < wordCountMap.get(sl[j])){
    				String temp = sl[i];
    				sl[i] = sl[j];
    				sl[j] = temp;
    			}
    		}
    	}
    	return sl;
    }

    //冒泡排序
    public static List<String> wordSort1(Map<String,Integer> wordCountMap){
    	if(wordCountMap == null || wordCountMap.isEmpty()){
    		return null;
    	}
    	List<String> sl = new List<String>(wordCountMap.keySet());
    	if(sl.size()==1) return sl;
    	for(Integer i=0;i<sl.size();i++){
    		for(Integer j=0;j<sl.size()-1-i;j++){
    			if(wordCountMap.get(sl[j]) < wordCountMap.get(sl[j+1])){
    				String temp = sl[j];
    				sl[j] = sl[j+1];
    				sl[j+1] = temp;
    			}
    		}
    	}
    	return sl;
    }
	
	//List.sort方法。实现
	public class WordCountVO implements Comparable{
        public String word{set;get;}
        public Integer count{set;get;}

        public Integer compareTo(Object compareTo) {
            WordCountVO compareToEmp = (WordCountVO)compareTo;
            if (this.count == compareToEmp.count) return 0;
            if (this.count < compareToEmp.count) return 1;
            return -1;
        }

        public WordCountVO(String word, Integer count){
            this.word = word;
            this.count = count;
        }

        public override String toString(){
            return this.word;
        }

    }

    public static List<WordCountVO> build(Map<String,Integer> wordCountMap){
        if(wordCountMap == null || wordCountMap.isEmpty()){
            return null;
        }
        List<WordCountVO> rs = new List<WordCountVO>();
        for(String key:wordCountMap.keySet()){
            rs.add(new WordCountVO(key,wordCountMap.get(key)));
        }
        return rs;
    }

    public static List<String> wordSort2(Map<String,Integer> wordCountMap){
        if(wordCountMap == null || wordCountMap.isEmpty()){
            return null;
        }
        List<WordCountVO> wcvs = build(wordCountMap);
        wcvs.sort();
        List<String> ss = new List<String>();
        for(WordCountVO wcv:wcvs){
            ss.add(wcv.toString());
        }
        return ss;
    }
	//List.sort方法。实现 END
}
String s = 'I like your product, your product is durable! I like Apex and visualforce!';
Map<String, Integer> m = Deloitte_CountWordsNumbers.wordCount(s);
System.debug(m);
List<String> l1 = Deloitte_WordsSort.wordSort(m);
System.debug(l1);
3、code

public with sharing class Deloitte_ComputeSuperBiggerNumber {
	//a = 888888888888888888888888888889
	//b = 111111111111111111111111111111
    public static String add(String a, String b){
    	if(a==null || b==null){
    		return '';
    	}
    	String reg ='^\\d+$';
    	if(Pattern.matches(reg,a)
    		&& Pattern.matches(reg,b)){
	    	String result = '';
	    	String ar=a.reverse();
	    	String br=b.reverse();
	    	Integer c = 0;//进位
	    	for(Integer i=0;i<ar.length()||i<br.length();i++){
	    		Integer aa = i>=ar.length()?0:ar.charAt(i)-48;//可以使用substring
	    		Integer bb = i>=br.length()?0:br.charAt(i)-48;
	    		Integer sum = (Integer)Math.mod(aa+bb+c,10);
	    		c = (aa+bb+c)/10;
	    		result+=(sum);
	    	}
	    	if(c!=0){
	    		result+=(c);
	    	}
	    	return result.reverse();
    	} else {
    		return '';
    	}
    }
}
String a = '888888888888888888888888888889';
String b = '111111111111111111111111111111';
String r = Deloitte_ComputeSuperBiggerNumber.add(a,b);
System.debug(r);

三、执行效果预览


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字化成熟度评估是指对组织数字化程度的评估,德勤DMM(数字化成熟度模型)是一种评估工具,关注的重点主要包括组织的数字化战略、数字化技术基础设施、数字化文化和组织能力四个方面。 首先,数字化成熟度评估德勤DMM模型关注组织的数字化战略。这包括组织对数字化的愿景和目标,数字化的战略规划和执行能力。一个好的数字化战略能够指导组织在数字化转型过程中的方向和目标,是数字化转型的基础。 其次,德勤DMM模型关注组织的数字化技术基础设施。这包括组织的技术架构、技术平台、数据管理和安全能力。一个高效的数字化技术基础设施能够支撑组织的数字化业务需求,提升数字化转型的效率和质量。 第三,德勤DMM模型关注组织的数字化文化。这包括组织的创新文化、数字化员工能力和组织的数字化领导力。一个积极的数字化文化能够激发员工的创新潜能,推动数字化转型的落地和实施。 最后,德勤DMM模型关注组织的数字化能力。这包括组织的数字化项目管理能力、数字化业务流程能力和数字化ROI能力。一个具备良好数字化能力的组织能够高效地管理数字化项目,优化数字化业务流程,实现数字化转型的商业价值。 总的来说,德勤DMM模型关注的重点涵盖数字化战略、技术基础设施、文化和组织能力四个方面,这些方面综合影响着组织的数字化成熟度。通过德勤DMM模型的评估,组织能够全面了解自身的数字化成熟度,找到数字化转型的优先领域和关键驱动因素,实现数字化转型的成功和持续发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值