这个字符邮政编码格式怎么写题怎么写

求大神帮我写一段代码,感激不尽,题目如下_java吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:527,415贴子:
求大神帮我写一段代码,感激不尽,题目如下收藏
编写一个用于记录程序执行过程中产生的过程信息的 Logger 类。1) 这个类有一个公共的 log 方法, 这个方法接受一个字符串作为参数, 然后将这个字符串信息按照如下的格式:当前日期和时间 + 需要记录的信息[ 12:20:15] This is a message!添加到一个名为 log.txt 的文本文件中。2) 这个类有一个公共的 showLog()方法, 这个方法不接受参数, 它可以读取 log.txt文件中的内容, 并将内容使用打印输出。3) 创建一个 Record 类, 让其实现 Runnable 接口, 这个 Record 有一个 Logger 类型的成员 变量, 并且可以使用构造函数在创建 Record 的对象时, 初始化这个Logger 类型的成员变量。 并且当将其放入一个线程中执行时, 每隔 2 秒钟就调用Logger 的 log 方法记录一条日志信息。4) 创建一个 ShowInfo 类, 让其实现 Runnable 接口, 这个 ShowInfo 类也有一个Logger 类型的成员变量, 并且可以使用构造函数在创建 ShowInfo 的对象时, 初始化这个 Logger 类型的变量。 并且将这个对象放入一个线程中执行时, 每隔 5秒钟就调用 Logger 的 showLog()方法显式一次日志信息。5) 在 Logger 类中编写一个主函数, 然后在主函数中创建一个 Logger 类的实例,并且分别创建一个 Record 对象和一个 ShowInfo 对象, 将这两个对象分别放入一个线程中执行。 请确保这整个过程是县城安全的。
java,就业薪资高,发展前景好,零基础入学,120天入门到精通.线上线下学习任你选,先就业后付款,学员尊享-名企入职通道.先就业后付款!
等我下课帮你写
为什么不用log4j
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
信息论与编码课后习题答案1
下载积分:1600
内容提示:信息论与编码课后习题答案1,信息论与编码课后答案,信息论与编码,信息论与编码技术,信息论基础课后答案,课后习题答案网,土力学课后习题答案,课后习题答案,水力学课后习题答案,散步课后习题答案
文档格式:DOC|
浏览次数:28|
上传日期: 10:49:19|
文档星级:
该用户还上传了这些文档
信息论与编码课后习题答案1
官方公共微信Windows 7 中文版命令行如何修改字符编码为UTF-8?_百度知道以下试题来自:
单项选择题下面几个符号串编码集合中,不是前缀编码的是______。A.0,10,110,1111 B.11,10,001,101,0001C.00,010,) D.b,c,aa,ac,aba,abb,abc
为您推荐的考试题库
你可能感兴趣的试题
1A.未出现错误 B.最低位出错C.未出现错误或出现偶数位错 D.出现奇数位错2A.直接交换 B.改进直接交换 C.存储转发交换 D.查询交换3A.计算机系统发生重大故障 B.有多个封锁的进程同时存在 C.若干进程因竞争资源而无休止地相互等待对方释放已占有的资源 D.资源数大大小于进程数或进程同时申请的资源数大大超过资源总数4A.节省主存空间 B.物理上扩充主存容量C.提高CPU效率 D.实现主存共存5A.2 B.2.5 C.1.5 D.1
热门相关试卷
最新相关试卷1、字符串移位包含问题
//普通解法
bool contain_check()
char s[6] = "AABCD";
char d[5] = "CDAA";
int len = strlen(s);
for(int i=0; i& ++i)
char temp = s[0];
for(int j=0; j&len-1; ++j)
s[j] = s[j+1];
s[len-1] =
if(strstr(s,d) != 0)
return true;
return false;
寻找规律:对S1做循环移位所得到的字符串都是字符串S1S1的子字符串,如果S2可以由S1循环移位得到,那么S2一定在S1S1上。字符串循环同构问题:如果字符串s1可以经过有限次循环得到s2,则称s1和s2是循环同构的。S=s1+s1为主串,s2为模式串。如果s1和s2是循环同构的,那么s2就一定可以在S中找到匹配!
2、求一个字符串中出现频率最高的那个字符及其出现次数
空间换时间:使用一个额外的数组统计每个字符出现的次数,再扫描一次得到查找的字符,这是O(N)的时间复杂度。得到字符串第一个无重复的字符也可以用这种方法。
假设处理的是ASCII字符集:需要注意 char的范围是[-128,127]之间,所以数组下标要加上128
void get_most(char *s, char &ch, int &size)
ch = '\0';
if (NULL != s)
int n[256];
memset(n, 0, sizeof(n));
while(*s != '\0')
n[*s+128] += 1;
if((n[*s+128]) & size)
size = n[*s+128];
3、给一个字符串,有大小写字母,要求写一个函数把小写字母放在前面,大写字母放在后面,尽量使用最小的空间、时间复杂度。
void move_char(char* a)
char* j = a+strlen(a)-1;
while(i & j)
while(*i && (*i&='a' && *i&='z'))
if((*i) == '\0') break;
while(*j&='A' && *j&='Z')
char c = *i;
4、编写字符串处理函数,将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:ab**cd**e*12,处理后为*****abcde12,函数并返回值为5。(要求使用尽量少的时间和辅助空间)
int partitionStar(char a[],int len)
int count = 0;
int i = len-1;
int j = len-1; //j指向第一个'*'
while(i &= 0)
if (a[i] !=
swap(a[i--], a[j--]);
i--; count++;
5、删除字符串中的数字并压缩字符串。如字符串"abc123de4fg56"处理后变为"abcdefg"。注意空间和效率。
(下面的算法只需要一次遍历,不需要开辟新空间,时间复杂度为O(N))
char* delete_digits(char* str)
char* i = // i for cursor, j for
while(*i != '\0')
if (*i&'0' || *i&'9')
*j++ = *i++;
6、删除特定字符:写一个高效的函数,删除字符串里给定的字符
void Remove_chars(char str[], char remove[])
int remove_arr[256];
for(int i=0; i&256; ++i)
remove_arr[i] = 0;
for(int i=0; remove[i]; ++i)
remove_arr[remove[i]] = 1;
int i = 0;
for(int j=0; str[j]; ++j)
if(!remove_arr[str[j]])
str[i++] = str[j];
str[i]='\0';
7、编码实现字符串转整型的函数(实现函数atoi的功能)。如将字符串&123&转化为123,&-0123&转化为-123
int str_to_int(const char* str)
int is_neg = 0, num = 0;
const char * p =
if (*str == '-')
is_neg = 1;
while(*p &= '0' && *p &= '9')
num = num * 10 + (*p-'0');
if(is_neg)
num *= -1;
编码实现整型转字符串的函数
//整数最大的位数
#define MAX_DIGITS_NUM 10
void int_to_str(int num,char str[])
int i = 0, j = 0, is_neg = 0;
char temp[MAX_DIGITS_NUM+2];
if(num & 0)
num *= -1;
is_neg = -1;
//使用do while循环可以处理num为0的情况
temp[i++] = (num%10)+'0';
num /= 10;
}while(num);
if(is_neg)
temp[i++] = '-';
while(i & 0)
str[j++] = temp[--i];
str[j] = '\0';
8、翻转句子中单词的顺序
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入&I am a student.&,则输出&student. a am I&。 分析:先颠倒句子中的所有字符,再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。
void Reverse(char *pBegin, char *pEnd)
if(pBegin == NULL || pEnd == NULL)
while(pBegin & pEnd)
char temp = *pB
*pBegin = *pE
pBegin ++, pEnd --;
char* ReverseSentence(char *pData)
if(pData == NULL)
return NULL;
char *pBegin = pD
char *pEnd = pD
while(*pEnd != '\0')
// Reverse the whole sentence
Reverse(pBegin, pEnd);
// Reverse every word in the sentence
pBegin = pEnd = pD
while(*pBegin != '\0')
if(*pBegin == ' ')
pBegin ++;
// A word is between with pBegin and pEnd, reverse it
else if(*pEnd == ' ' || *pEnd == '\0')
Reverse(pBegin, --pEnd);
pBegin = ++pE
9、求字符串的最长重复子串:构造字符串的后缀数组,对后缀数组排序,再两两比较得到最长的重复子串
//compare funciton used by qsort()
int pstrcmp(const void *p, const void *q)
return strcmp(*(char **)p, *(char **)q);
//get max common length of string p and q
int comlen(char *p, char *q)
int i = 0;
while (*p && (*p++ == *q++))
//get max repeat substring of str
int find_max_repeat(char* str, char* result, int & len)
int temlen, maxi, maxlen = -1;
char *a[99999];
int n = 0;
while (*str != '\0')
a[n++] = str++;
qsort(a, n, sizeof(char *), pstrcmp);
for (int i = 0; i & n-1; i++)
temlen = comlen(a[i], a[i+1]);
if (temlen & maxlen)
result = a[maxi];
printf("%.*s\n", maxlen, result);
10、字符串字母包含问题:有一个各种字母组成的字符串,还有一个字母数目较少的字符串,什么方法能最快的查出所有小字符串里的字母在大字符串里都有?
  最简单的方法:轮询小字符串里的每个字母,看它是否同在第一个字符串里。这需要O(n*m)次操作,其中n是string1的长度,m是string2的长度。
  一个改进的方法:对这两个字符串的字母进行排序,然后同时对两个字串依次轮询。两个字串的排序需要(常规情况)O(mlogm)+ O(nlogn)次操作,之后的线性扫描需要O(m+n)次操作。(随着字串长度的增长,你会发现这个算法的效果会越来越好)
  一个很好的方法:只需要O(n+m)次操作。对第一个长字串进行轮询,把其中的每个字母都放入一个Hashtable里(成本是O(n)次操作)。然后轮询第二个字串,在Hashtable里查询每个字母,看能否找到,如果找不到,说明没有匹配成功,这将消耗掉O(m)次操作。
  一个更有趣的方法:对一个一定个数的字母组成的字串,给每个字母分配一个素数,从2开始,往后类推。这样A将会是2,B将会是3,C将会是5,等等。现在先遍历第一个字串,把每个字母代表的素数相乘,会得到一个很大的整数。然后&&轮询第二个字符串,用每个字母代表的素数除它。如果除的结果有余数,这说明有不匹配的字母,如果整个过程中没有余数,你应该知道它是第一个字串恰好的子集了。
11、求一个字符串的最长的没有重复字符的子串。
方法一:穷举法,使用2重外循环遍历所有的区间,用2重内循环检验子串是否符合&无重复字符&这一要求。其中外层循环i、j 遍历所有的下标,m、n是内层循环,检查区间[i,j]是否符合要求。空间复杂度是O(1),时间复杂度O(N^4)。
方法二:对方法一的检验子串是否&无重复字符&进行改进,使用hash表记录字符是否出现过。
方法三:使用DP,对于最长不重复子串,某个当前的字符,如果它与前面的最长不重复子串中的字符没有重复,那么就可以以它为结尾构成新的最长子串;如果有重复,那么就与某个稍短的子串构成新的子串或者单独成一个新子串。
方法四:对这个字符串构造后缀数组,在每个后缀数组中,寻找没有重复字符的最长前缀,就是要找的子串。
12、求一个字符串中连续出现次数最多的子串
int count = 0;
char sub_str[256];
void find_str(char *str)
int str_len = strlen(str);
int tmp_cnt = 0;
for(i = 0; i & str_ i++)
for(j = i+1; j & str_ j++)
int n = j-i;
//sub string length
tmp_cnt = 1;
if(strncmp(&str[i], &str[j], n) == 0)
//compare n-lengths strings
tmp_cnt++;
//they are equal, so add count
for(k = j+n; k & str_ k += n)
//consecutive checking
if(strncmp(&str[i], &str[k], n) == 0)
tmp_cnt++;
if(count & tmp_cnt)
count = tmp_
memcpy(sub_str, &str[i], n); //record the sub string
13、寻找包含给定字符集合的最短子串:字符串S="abcdefg",字符集合D={'c','f'},那这个最小子串为S'="cdef"。
//判断hash是否包含所有的hash_sub
int has_sub(int * hash, int * hash_sub)
for(int i=0; i&256; ++i)
if(hash_sub[i] && !hash[i])
//在str中寻找包含dst的最短子串
int min_substring(char * str, char * dst)
char * begin =
char * end =
char * begin_index = NULL;
int minlen = strlen(str);
int hash[256];
int hash_sub[256];
memset(hash,0,sizeof(hash));
memset(hash_sub,0,sizeof(hash_sub));
for(int i=0; dst[i]; ++i)
hash_sub[dst[i]] = 1;
hash[*begin] = 1;
while(*end)
while(!has_sub(hash,hash_sub) && *(end+1))
hash[*end] = 1;
while(has_sub(hash,hash_sub))
if(end-begin+1 & minlen)
minlen = end-begin+1;
begin_index =
if (*begin != *(begin+1))
hash[*begin] = 0;
//hash[*begin] = 0;
if(*(end+1) == '\0') break;
printf("%.*s\n", minlen, begin_index);
14、递归求解一个字符串中连续单个字符出现最多次数字符的个数
void count(const char *s)
if(!(*s)) return;
const char * p = s+1;
int n = 1;
while(*p && *p == *s)
if(n & max_count) max_count =
count(s+1);
阅读(...) 评论()

我要回帖

更多关于 邮政编码格式怎么写 的文章

 

随机推荐