c++-C++编程 算法 求助!!!

问题描述

C++编程 算法 求助!!!

C++编程 算法 求助!!!
c++代码编程出现频率
在一篇英文文章中,输入一个字母,请输出与该字母一起出现频率最高的三个字母。
如:输入s,可能和s一起出现频率最高的就是t,e.....
想知道算法!!!如果可以,可以给个代码作为参考吗?非常谢谢

解决方案

没问题,采纳了就写给你。

解决方案二:

求一篇英文文章中各个字母出现的频率,不区分大小写.
思路:

(1)首先定义一个数组freArray= new int[26],存放每个单词的出现频率.
(2)读取该篇文章到内存中,并形成一个字符数组.
(3)遍历该字符数组
----首先判断被遍历到字符c的ascii值是否大于'A'而且小于'Z',如果是,则freArray[c-'A']++
----然后判断被遍历到字符c的ascii值是否大于'a'而且小于'z',如果是,则freArray[c-'a']++

(4)然后输出freeArray中各个字母的统计值.

实现代码(Java):

package com.test.test;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class ComputeCharFrequency {

/**
 * Compute the frequencies of letter occurrence
 *
 * @param args
 */
public static void main(String[] args) {
    int[] freArray = new int[26];
    char[] charArray = loadCharArrayFromFileName("c:/article.txt");

    computeFrequency(freArray, charArray);
    for (int i = 0; i < freArray.length; i++) {
        System.out.println(((char) ('a' + i)) + ":" + freArray[i]);

    }
}

public static void computeFrequency(int[] freArray, char[] charArray) {
    for (int i = 0; i < charArray.length; i++) {
        if (charArray[i] >= 'A' && charArray[i] <= 'Z') {
            freArray[charArray[i] - 'A']++;

        }
        if (charArray[i] >= 'a' && charArray[i] <= 'z') {
            freArray[charArray[i] - 'a']++;

        }

    }

}
/**
 * read a text file's content to a Char Array
 * @param name
 * @return Char Array
 */
public static char[] loadCharArrayFromFileName(String name) {
    char[] charArray = new char[50000];
    File file = new File(name);
    FileReader fr = null;
    try {
        fr = new FileReader(file);
        fr.read(charArray);
        return charArray;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        try {
            fr.close();
        } catch (IOException e) {

            e.printStackTrace();
        }

    }
    return null;
}

}

解决方案三:

我给你百度的,是类似这样的么,你百度是没有这类题吗??

解决方案四:

楼上理解楼主的意思了,,,,,,

时间: 2024-08-04 09:10:41

c++-C++编程 算法 求助!!!的相关文章

代码-C++编程 算法 求助!!!

问题描述 C++编程 算法 求助!!! 在一篇英文文章中,输入一个字母,请输出与该字母一起出现频率最高的三个字母.如:输入s,可能和s一起出现频率最高的就是t,e.....想知道算法!!!如果可以,可以给个代码作为参考吗?非常谢谢 解决方案 之前回答过你的问题.和计算出现频率最高的字母其实类似,只不过那个只需要一个向量保存结果,这个需要一个矩阵,保存字母转移关系.最后统计输出.要代码,请采纳. 解决方案二: 我的想法是这样: 建立一个代表字母的数组a[300],比如a[A]表示A出现的次数. 那

c语言-编程算法 - 最小的k个数 代码(C)

问题描述 编程算法 - 最小的k个数 代码(C) 请解释一下在c语言中怎样编写在输入的N个数中找到k个最小的数 解决方案 排序吧,再输出前k个数 解决方案二: 遍历,找出MAX,移除MAX,循环K遍 解决方案三: 我觉得你的问题是怎么将输入的数保存下来,你可以先定义一个vector. vector vec;int iNUm = 0;while(cin>>iNum)//需要结束的时候输入ctrl+z;{ vec.push_back(iNum);}//最后对整个vec进行排序,取得最小的值 解决方

编程算法之硬币问题 代码(C)

题目: 有1, 5, 10, 50, 100, 500元硬币各若干枚, 现在要用这些硬币来支付A元, 最少需要多少枚硬币? 假定本题至少存在一种支付方案. 使用贪心算法, 优先选用最大的硬币, 并不断的调整硬币的数量. 代码: /* * main.cpp * * Created on: 2014.7.17 * Author: spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <limits.h> #inc

十大编程算法助程序员走上大神之路

十大编程算法助程序员走上大神之路 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤:

地图api-webGL问题,地图多线合并算法求助!!!

问题描述 webGL问题,地图多线合并算法求助!!! 开发一个新的地图API,目前一个难题. 需要将多条不规律的线合并为一条,这些线可相交,可是折线,长短不一. 有过类似经验或者有想法的同僚来探讨一下吧

java-一个简单的小算法求助

问题描述 一个简单的小算法求助 找出一个数组中既不是最大的数也不是最小的数,我的java代码如下(错误的): class NotMM{ public void NotMM(int arr[]){ int mid = arr[0]; for(int i=0;i<arr.length-2;i++){ if(arr[i+1]>arr[i]&&arr[i+1]<arr[i+2]){ mid = arr[i+1]; }else if(arr[i+1]<arr[i]&&

树-一道编程题,用c++编程,求助

问题描述 一道编程题,用c++编程,求助 给定一颗无根树,假设它有n个节点,节点编号从1到n,求任意两点之间的距离之和,也就是求任意一点到其它点的距离之和,边长都为1.要求时间复杂度为O(n) 解决方案 先做一遍DFS求出所有节点到根节点的距离之和,然后可以发现,如果知道到一个点的距离之和,可以用O(1)求出所有节点到它相邻点的距离之和 解决方案二: /* ***********************************************Author :xdloveCreated T

内存-关于动态分配的编程题 求助!!!

问题描述 关于动态分配的编程题 求助!!! 第3题. 动态内存分配,指针数组,模拟函数的传引用调用 从键盘读取正整数n,然后读取n个单词,单词长度假设不会超过20.要求按照单词长度从小到大的顺序,输出单词. 要求:根据n动态创建一个长度为n的指针数组.每个单词存放在动态字符数组中. (1) 实现函数char ** readWords(int n),用于从键盘读取n个单词,保存在动态申请的字符数组中,字符数组首地址保存在动态申请的指针数组中.返回指针数组首元素的地址. (2) 实现函数void s

图论-关于点聚集情况问题,算法求助

问题描述 关于点聚集情况问题,算法求助 已知,N个点两两之间的距离,现希望能够寻找到靠的最紧密的S个点?如果可以能否可以找到这S个点是以什么点为聚集中心的? 对于这S个点到其所聚集的中心距离之和最小,但这个聚集中心并不知道 解决方案 1.N个点选3个,算出半径 2.找出最短半径 3.找出离圆心最近的点. 其实我不懂.