拼多多笔试题第三题和第四题

求问拼多多第三题字典序的解题思路,还有第四题的输出格式
我是用C++,最后输出采用cout<<value1<<" "<<value2<<endl;的方式,本地IDE输入示例后输出的结果同样是6 6,代码复制到答题页面后,通过率为0,求大神解答正确的输出格式
全部评论
目测不是输出格式问题,我的输出格式和你是一样的,能过一部分
点赞 回复
分享
发布于 2018-03-20 21:19
import java.util.*; public class Solution{     public static void main(String[] arg){         Scanner in = new Scanner(System.in);         String init = in.next();         char[] ch = init.toCharArray();         //System.out.println(ch);         int len = ch.length;         char big = 'a';         for(int i = 0; i<len; i++){             if(ch[i]>big){                 big = ch[i];             }         }         ArrayList<Character> list = new ArrayList<>();         char temp = 'a';         int count = 0;         for(int i = 0; i<len; i++){             if(ch[i] == big){                 count++;             }         }         int cnt = 0;         for(int i = len-1; i>0; i--){             if(ch[i]!=big && !list.contains(ch[i])){                 list.add(ch[i]);             }else if(ch[i] == big){                 list.add(ch[i]);                 cnt++;             }else if(ch[i]!=big && ch[i]>temp && cnt<count){                 list.add(ch[i]);             }             temp = ch[i];         }         Collections.reverse(list);         String re = "";         for(int i = 0; i<list.size(); i++){             re += String.valueOf(list.get(i));         }         System.out.println(re);     } } //bcadabdcbbcad 这题一直报错,最后一分钟才发现问题,可是来不及改了,多出来两分钟改完了,mmp,也不知道能通过多少0.0 思路是:倒序遍历,第一次出现的字符一定保留,不是第一次出现的但是比上一个大的保留而且 没有遍历到最后一个最大字符的保留,最大字符一定保留。反正例子里头最复杂的那个肯定可以通过。
点赞 回复
分享
发布于 2018-03-20 21:29
联易融
校招火热招聘中
官网直投
#include <iostream> #include <string> using namespace std; int main() {     string s;     cin>>s;     int times[26]={0};     for(int i=0;i<s.length();i++)  times[s[i]-'a']+=1;     int index=0;     string result=s;     while(index<result.length())     {         if(result.substr(index)< result.substr(index+1) && times[result[index]-'a']>1 )         {             times[result[index]-'a']--;             result=result.substr(0,index)+result.substr(index+1);             index=0;         }         else index++;     }     cout<<result;     return 0; }
点赞 回复
分享
发布于 2018-03-20 21:59

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务