douke1891 2017-10-13 16:06
浏览 101
已采纳

使用PHP或Python按计数排序字符

I have a string of characters

abcdefghijklmnopqrstuvwxyz_

I want to take this string of characters and sort them by the number of times they appear in a large block of characters. For example:

cwrxwzbgickpjbp_svnudntddwdqbfgzyiqpuxddmpvyfquosmicfzkjekxzchngpqaksafulateukuwomdrwza_n_ptzktjzcuibnebe_tqessrzqewgkadrkvtyznaupodanwazopg_fijcoojojbsolr_ejesukzc_quochdnmti_lkvrsegyieqlqysuxdvetkqtkhxaiypfdiddztlicjurnllriopdtuuzpryrsepfydyeg_xkr_ruxp_lgqesysidfsygztwrba_ay_gaqqklbrvr_lbhawjraqujfxptmuvqfzklfodgaqrnhjravksjwemoosdlxtvw_qspxmlvqryusfixzlkb_p_c_tepzozzwnokvqspkizygoqpbhjnsxopchzgapctowbrletrunlgnvzpfwrqgedo_s_ygkxz_mpncnve_gfpbotupawevhfxvqhwlerupjfibosbvhiijrodigzyhy_iijes_xsqorshhdzkjqitpljsftpitjetwmzqiabyiewgtbjaddtsjkckcxxvlyrchloetluxkohn_uihkdjpcqgvejanslakmwendgkmvmayknvjjnr_kdapnumwvz__lsimxdtrflyleykxejl_jbkhexpcyreoapelqzzyriyrbxdgbgwrrxlj_pt_mpwubvbveakxfsbfgj___

I also want to drop any characters after and including the underscores once I have these sorted.

Is recursion the right idea I need to look at here?

EDIT

Example of what may be output:

afiskjweocnsdkspwjrhfg

Basically the characters will simply be sorted based on their frequency in a single line.

  • 写回答

2条回答 默认 最新

  • dousui3124 2017-10-13 16:25
    关注
    <?php
    
    $text = 'ahugechunkofatext';
    $charCounts = count_chars($text, 1);
    arsort($charCounts);
    
    $chars = array_map('chr', array_keys($charCounts));
    $chars = array_filter($chars, function ($char) {
        return !in_array($char, ['_']); // A list of chars that you don't want
    });
    
    echo implode('', $chars) . PHP_EOL;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置