一只落单的猹:绿了
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
清心123:零容忍,一次不忠,百次不用
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
郑学炜:package notebook;
/**
* 利用LinkedHashMap容器完成笔记本功能
* 学炜写于2018.2.8
* 贴出代码以及输出结果
*/
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
public class notebook {
public static void main(String[] args) {
LinkedHashMap<Integer,String> linkedHashMap = new LinkedHashMap<Integer,String>();//新建一个笔记本(利用LinkedHashMap容器来存储记录与索引)
//能存储记录,并且不限制能存储的记录条数
linkedHashMap.put(1,"谢谢");
linkedHashMap.put(2,"牛客");
linkedHashMap.put(3,"带我");
linkedHashMap.put(4,"学习");
linkedHashMap.put(5,"JAVA");
//能知道已经存储的记录的数量
int count=linkedHashMap.size();
System.out.println("笔记本记录的数量为:"+count);
//查看某条记录
System.out.println("查看到的第1条记录内容为:"+linkedHashMap.get(1));
//删除某条记录
System.out.println("删除的第1条记录内容为:"+linkedHashMap.remove(1));
//重新加回第一条记录
//列出所有的记录
Iterator<Entry<Integer, String>> iter = linkedHashMap.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<Integer, String> entry = iter.next();
System.out.println("第"+entry.getKey()+"条记录内容为:"+entry.getValue());
}
}
}
//控制台输出的内容如下:
/*
笔记本记录的数量为:5
查看到的第1条记录内容为:谢谢
删除的第1条记录内容为:谢谢
第2条记录内容为:牛客
第3条记录内容为:带我
第4条记录内容为:学习
第5条记录内容为:JAVA
*/
0 点赞 评论 收藏
分享
乌邦图:/*若主串长度为N,子串长度为M,暴力求解时间复杂度为O(M x N)。
KMP 算法时间复杂度O(M)+O(N)。算法最主要的就是子串的next数组的构造了。
首先生成子串的next_arr数组,这个数组长度与子串长度一致。数组中第i个
元素next_arr[i]的含义是B[i]之前的字符串B[0...i-1]中,必须以B[i-1]结尾
的后缀子串(不能包含B[0])与必须以B[0]开头的前缀子串(不能包含B[i-1])
最大匹配长度是多少,这个长度就是next_arr[i]的值。子串用处:当到第i个
元素与主串不匹配的时候,可以不一定要从子串头和主串初始匹配时的下一个
元素做起点开始匹配。因为next_arr数组记录了子串第i个元素之前的子串特性。
若子串在B[i]处于主串A[j]处不匹配,则j位置不变,下次从B[next_arr[i]]处
继续和A[j]相比。*/
#include<iostream>
#include<string>
using namespace std;
//求子串next数组
int* getnext_arr(string B)
{
int len = B.length();
int* next = new int[len];
next[0] = -1;
if(len==1)
return next;
next[1] = 0;
int pos = 2;
int cn = 0;
while(pos < len)
{
if(B[pos-1] == B[cn])
next[pos++] = ++cn;
else if(cn > 0)
cn = next[cn];
else
next[pos++] = 0;
}
return next;
}
//匹配,若能匹配,返回主串匹配起始的下标,若不能则返回-1
int getIndex(string A, string B)
{
if(A == "" || B == "" || B.length() < 1 || A.length() < B.length())
return -1;
int Ai = 0, Bi=0;
int *next = new int[B.length()];
next = getnext_arr(B);
while(Ai < A.length() && Bi < B.length())
{
if(A[Ai] == B[Bi])
{
Ai++; Bi++;
}
else if(next[Bi] == -1)
{
Ai++;
}
else
{
Bi = next[Bi];
}
}
return Bi == B.length() ? Ai - Bi : -1;
}
int main()
{
string A,B;
while(cin>> A >> B)
{
cout<<getIndex(A,B) <<endl;
}
return 0;
}
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
牛客7462204号:mbp
0 点赞 评论 收藏
分享
peter233:好想谈恋爱 噢 越想越难耐 不知到底谁才适合我的爱 搜索QQ上有些留言很奇怪 男人不坏女人不爱 有位自称人很帅 心地善良小乖乖 问今年几岁有过几次 one night 吓的我发呆 这是什么E时代 赶快对他说声拜拜 哦 QQ愛是真是假谁去猜 不管它大步向前迈 只要多点自在相聚少点空白 继续聊聊心里的阴霾 哦 QQ愛是真是假谁去猜 说不定对方他是杰伦 既然分不清好坏 也没有胜利失败 自己享受自己的精彩
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
我家的狗不咬人:太多了 蒸羊羔,蒸熊掌,蒸鹿尾儿,
烧花鸭,烧雏鸡儿,烧子鹅
,卤煮咸鸭,酱鸡,腊肉,松花,小肚儿
,晾肉,香肠,什锦苏盘,
熏鸡,白肚儿,清蒸八宝猪,江米酿鸭子,
罐儿野鸡,罐儿鹌鹑,
卤什锦,卤子鹅,卤虾
,烩虾,炝虾仁儿,山鸡,兔脯,菜蟒,银鱼, 清蒸哈什蚂,烩鸭腰儿,烩鸭条儿,清拌鸭丝儿,黄心管儿,
焖白鳝,焖黄鳝,豆鼓鲇鱼,锅烧鲇鱼,烀皮甲鱼,锅烧鲤鱼,抓炒鲤鱼, 软炸里脊,软炸鸡,什锦套肠,麻酥油卷儿,
熘鲜蘑,熘鱼脯儿,熘鱼片儿,熘鱼肚儿,醋熘肉片儿,熘白蘑,
烩三鲜,炒银鱼,烩鳗鱼,清蒸火腿,炒白虾,炝青蛤,炒面鱼,
炝芦笋,芙蓉燕菜,炒肝尖儿,南炒肝关儿,油爆肚仁儿,汤爆肚领儿,
炒金丝,烩银丝,糖熘饹炸儿,糖熘荸荠,蜜丝山药,拔丝鲜桃,
熘南贝,炒南贝,烩鸭丝,烩散丹,
清蒸鸡,黄焖鸡,大炒鸡,熘碎鸡,香酥鸡,炒鸡丁儿,熘鸡块儿,
三鲜丁儿,八宝丁儿,清蒸玉兰片,
炒虾仁儿,炒腰花儿,炒蹄筋儿,锅烧海参,锅烧白菜,
炸海耳,浇田鸡,桂花翅子,清蒸翅子,炸飞禽,炸葱,炸排骨,
烩鸡肠肚儿,烩南荠,盐水肘花儿,拌瓤子,炖吊子,锅烧猪蹄儿,
烧鸳鸯,烧百合,烧苹果,酿果藕,酿江米,炒螃蟹.氽大甲,
什锦葛仙米,石鱼,带鱼,黄花鱼,油泼肉,酱泼肉,
红肉锅子,白肉锅子,菊花锅子.野鸡锅子,元宵锅子,杂面锅子,荸荠一品锅子,
软炸飞禽,龙虎鸡蛋,猩唇,驼峰,鹿茸,熊掌,奶猪,奶鸭子,
杠猪,挂炉羊,清蒸江瑶柱,糖熘鸡头米,拌鸡丝儿,拌肚丝儿,
什锦豆腐,什锦丁儿,精虾,精蟹,精鱼,精熘鱼片儿,
熘蟹肉,炒蟹肉,清拌蟹肉,蒸南瓜,酿倭瓜,炒丝瓜,焖冬瓜,
焖鸡掌,焖鸭掌,焖笋,熘茭白,茄干儿晒卤肉,鸭羹,蟹肉羹,三鲜木樨汤,
红丸子,白丸子,熘丸子,炸丸子,三鲜丸子,四喜丸子,氽丸子,葵花丸子,饹炸丸子,豆腐丸子,
红炖肉,白炖肉,松肉,扣肉,烤肉,酱肉,荷叶卤,一品肉,樱桃肉,马牙肉,酱豆腐肉,坛子肉,罐儿肉,元宝肉,福禄肉,
红肘子,白肘子,水晶肘子,蜜蜡肘子,烧烀肘子,扒肘条儿,
蒸羊肉,烧羊肉,五香羊肉,酱羊肉.氽三样儿,爆三样儿,
烧紫盖儿,炖鸭杂儿,熘白**,三鲜鱼翅,栗子鸡,尖氽活鲤鱼,板鸭,筒子鸡.
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
0 点赞 评论 收藏
分享
创作者周榜
更多
关注他的用户也关注了: