//
// WordManger.h
// OC7_单词个数
//
// Created by zhangxueming on 15/6/17.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h> @interface WordManger : NSObject
{
NSMutableDictionary *_wordList;
} - (id)initWithFile:(NSString *)path; - (void)parseWordFile:(NSString *)path; - (NSInteger)firstWordCountInArray:(NSString *)word withArray:(NSMutableArray *)mulArray; + (void)userInterface;
@end
//
// WordManger.m
// OC7_单词个数
//
// Created by zhangxueming on 15/6/17.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "WordManger.h" @implementation WordManger - (id)initWithFile:(NSString *)path
{
self = [super init];
if (self) {
_wordList = [NSMutableDictionary dictionary];
[self parseWordFile:path];
}
return self;
} - (void)parseWordFile:(NSString *)path
{
//读取单词文件
NSString *fileContent = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
if (!fileContent) {
return;
}
//分割字符串
NSArray *words = [fileContent componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@",. \n"]];
NSMutableArray *mulWords = [NSMutableArray array];
for (NSString *item in words) {
if (![item isEqualToString:@""]) {
[mulWords addObject:[item lowercaseString]];
}
}
//统计单词出现的次数, 并添加到字典中
while ([mulWords count]) {
NSString *key = [mulWords objectAtIndex:];
NSNumber *value = [NSNumber numberWithInteger:[self firstWordCountInArray:key withArray:mulWords]];
[_wordList setObject:value forKey:key];
[mulWords removeObject:key];
}
} - (NSInteger)firstWordCountInArray:(NSString *)word withArray:(NSMutableArray *)mulArray
{
NSInteger cnt =;
for (NSString *item in mulArray) {
if ([item isEqualToString:word]) {
cnt++;
}
}
return cnt;
} + (void)userInterface
{
WordManger *manger = [[WordManger alloc] initWithFile:@"/Users/zhangxueming/Downloads/qfile-10.txt"];
NSInteger cnt;
scanf("%li",&cnt);
NSLog(@"keys = %@", [manger->_wordList allKeysForObject:[NSNumber numberWithInteger:cnt]]);
}
@end
//
// main.m
// OC7_单词个数
//
// Created by zhangxueming on 15/6/17.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
#import "WordManger.h" int main(int argc, const char * argv[]) {
@autoreleasepool { [WordManger userInterface]; }
return ;
}

OC7_单词个数的更多相关文章

  1. NOIP2001统计单词个数[序列DP]

    题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单 ...

  2. 洛谷 P1026 统计单词个数 Label:dp

    题目描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k<=40),且每份中包含的单 ...

  3. 第六章 第一个Linux驱动程序:统计单词个数

    现在进入了实战阶段,使用统计单词个数的实例让我们了解开发和测试Linux驱动程序的完整过程.第一个Linux驱动程序是统计单词个数. 这个Linux驱动程序没有访问硬件,而是利用设备文件作为介质与应用 ...

  4. 第六章第一个linux个程序:统计单词个数

    第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数.  第 1 步:建立 Linu x 驱 ...

  5. 【wikioi】1040 统计单词个数

    题目链接 算法:划分型DP PS:被卡过3天.日期:2013-10-10 ~ 2013-10-12 18:52:48 这题是我提交了13次AC= =汗= = 题目描述: 给出一个长度不超过200的由小 ...

  6. 统计单词个数及词频(C++实现)

    #include<iostream> #include<fstream> #include<string> using namespace std; struct ...

  7. NOIP200107统计单词个数

    NOIP200107统计单词个数 难度级别: A: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 给出一个长度不超过200的由 ...

  8. NOIP2001 统计单词个数

    题三 统计单词个数(30分) 问题描述 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个).要求将此字母串分成k份(1<k&l ...

  9. Codevs_1040_[NOIP2001]_统计单词个数_(划分型动态规划)

    描述 http://codevs.cn/problem/1040/ 与Codevs_1017_乘积最大很像,都是划分型dp. 给出一个字符串和几个单词,要求将字符串划分成k段,在每一段中求共有多少单词 ...

随机推荐

  1. python的一些总结1

    1.安装环境 window用户下载 python :https://www.python.org/downloads/release/python-2710/ 安装不解释.. 配置环境变量  找到 P ...

  2. C#文件读写常用类介绍

    首先要熟悉.NET中处理文件和文件夹的操作.File类和Directory类是其中最主要的两个类.了解它们将对后面功能的实现提供很大的便利.      本节先对和文件系统相关的两个.NET类进行简要介 ...

  3. WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)

    一. 摘要 首先圣殿骑士非常高兴这个系列能得到大家的关注和支持.这个系列从七月份開始到如今才第七篇,上一篇公布是在8月2日,掐指一算有二十多天没有继续更新了,最主要原因一来是想把它写好,二来是由于近期 ...

  4. 为joomla加入下拉菜单的方法

    用 Joomla! 建站的大多数站长都须要在站点前台使用下拉菜单(dropdown menu),或者叫弹出菜单(slide menu),由于这样能够在有限的页面空间上公布很多其它的导航菜单,而且能够进 ...

  5. some websit

    Baidu:VideoView onVideoSizeChanged http://code.taobao.org/p/TangHuZhao/src/ http://code.taobao.org/p ...

  6. Activate、Deactivate 事件 Activate ThrottleEvent;

    http://help.adobe.com/zh_CN/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-8000.html   Activate.De ...

  7. Sublime Text 3 常用快捷键总结

    1.快速跳转到某一行:Ctrl+G,输入行号,可以快速跳转到该行 2.快速查找:Ctrl+P 输入"@函数名"可以快速查找到函数 输入"#+文本" 3.多行游标 ...

  8. QT断点续传

    //功能:    根据一个URL地址将数据保存到指定路径下,支持断点续传//参数:    url            --需要访问的URL地址//         SavePath       -- ...

  9. AngularJS - Apply方法监听model变化

    <body> <div ng-app="myApp"> <div ng-controller="firstController" ...

  10. OpenVPN莫名其妙断线的问题及其解决-confirm

    本文很短,目的在于confirm一下凌乱的< OpenVPN莫名其妙断线的问题及其解决>,如果看觉得我比较啰嗦,那么一定要看看最后一个小节,好在CSDN为每篇文章都自动添加了目录,可以直接 ...