第一个只出现一次的字符,josephus环,最大子数组和
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAXINT 0x7fffffff
#define MININT 0X80000000
//字符串中第一个只出现一次的字符
char firstSingle(char *str)
{
int a[255];
memset(a, 0, 255 * sizeof(int));
char *p = str;
while (*p != '\0'){
++a[*p];
++p;
}
p = str;
while (*p != '\0'){
if (a[*p] == 1) return *p;
++p;
}
return '\0';
}
//josephus问题 f(n,m)=(f(n-1,m)+m)%n,迭代求解最后一个数的原始数
int joseph(int n, int m)
{
int fn = 0;
for (int i = 2; i <= n; ++i)
fn = (fn + m) % i;
return fn;
} //最大子数组和
int maxSubArraySum(int *a, int n, int &b, int &e)
{
int p, sum, maxSum;
p = sum = 0;
maxSum = MININT;
for (int i = 0; i < n; ++i){
if (sum < 0){
sum = a[i];
p = i;
}
else sum += a[i];
if (sum > maxSum){
maxSum = sum;
b = p;
e = i;
}
}
return maxSum;
}
int main()
{
char str[] = "abaccdeff";
printf("%c\n", firstSingle(str));
printf("%d\n", joseph(5, 3));
int a[] = { 13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7 };
int len, b, e;
len = maxSubArraySum(a, 16, b, e);
printf("the maxSubArray is :\n");
for (int i = b; i <= e; ++i)
printf("%d\t", a[i]);
printf("\nthe maxSubArraySum is : %d\n", len);
}
第一个只出现一次的字符,josephus环,最大子数组和的更多相关文章
- 剑指Offer面试题:30.第一个只出现一次的字符
一.题目:第一个只出现一次的字符 题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",则输出'b'.要求时间复杂度为O(n). 最直观的想法是从头开始扫描这个 ...
- AC日记——找第一个只出现一次的字符 openjudge 1.7 02
02:找第一个只出现一次的字符 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符.如果没有,输出no. 输入 一个字符串 ...
- 剑指Offer 找出字符串中第一个只出现一次的字符
题目描述 找出字符串中第一个只出现一次的字符 如果无此字符 请输出'.' 输入描述: 输入一串字符,由小写字母组成 输出描述: 输出一个字符 输入例子: asdfasdfo 输出例子: o 思路:数组 ...
- 【编程题目】在一个字符串中找到第一个只出现一次的字符。如输入 abaccdeff,则输出 b。
第 17 题(字符串):题目:在一个字符串中找到第一个只出现一次的字符.如输入 abaccdeff,则输出 b. 思路:此题非常容易. 最开始是想开辟一块空间存储每个字符出现的次数. 但转念一想,似乎 ...
- 13.第一个只出现一次的字符[FindFirstNotRepeatingChar]
[题目] 在一个字符串中找到第一个只出现一次的字符.如输入abaccdeff,则输出b. [分析] 这道题是2006年google的一道笔试题. 看到这道题时,最直观的想法是从头开始扫描这个字符串中的 ...
- (剑指Offer)面试题35:第一个只出现一次的字符
题目: 在字符串中找出第一个只出现1次的字符,如输入“abaccdeff”,则输出b. 思路: 1.暴力遍历 从头开始扫描字符串中的每个字符,当访问某个字符时,取该字符与后面的每个字符相比较,如果没有 ...
- 剑指Offer:第一个只出现一次的字符
题目:在字符串中找出第一个只出现一次的字符.如输入"abaccdeff",这输出'b' // 第一个只出现一次的字符 #include <stdio.h> char f ...
- 剑指OFFER之第一个只出现一次的字符(九度OJ1283)
题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符. 输入: 输入有多组数据每一组输入一个字符串. 输出: 输出第一个只出现一次的字 ...
- 九度OJ 1283 第一个只出现一次的字符
题目地址:http://ac.jobdu.com/problem.php?pid=1283 题目描述: 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现 ...
- 【剑指offer】面试题35:第一个只出现一次的字符
题目: 在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符的位置.若为空串,返回-1.(书上是要求返回字符) 思路: 第一遍扫描保存下每个字符出现的 ...
随机推荐
- 使用 Oracle Sql plus的一点经验
1 当你输入的语句有错误的时候,不用重新输入语句,直接输入ed就会出现一个文本文档显示之前输入的语句,这样你可以在文本文档里面修改语句,最后点保存. 2 三个set:设置每行显示的记录长度:SE ...
- Django模型-数据库操作
前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开 ...
- 自定义HTTP错误页太小,导致显示默认友好错误页问题
一 . 问题描述: chrome 向服务器发送构造字符串,返回错误页面如下 <html> <head> <title>404 Not Found</title ...
- easyui的datagrid删除一条记录后更新出问题
1.问题 如果先删除一条记录,然后不选中一条记录,去更新一条,默认是有选中的记录的,就是被删除的那条记录. 2.解决方法 $("#dg").datagrid('uncheckAll ...
- 用python开发简单ftp程序
根据alex老师视频开发的简单ftp程序,只能实现简单的get功能 ftp客户端程序: #!/usr/bin/env python #_*_ coding:utf-8 _*_ import socke ...
- 什么是web标准
Web Standards Standards是个复数,就知道他是有好几个标准或者规范组成的,分别是:结构规范 XML ,XHTML;表现规范 CSS;行为规范 DOM,ECMAScript; 上面是 ...
- python 网络编程第二版
为服务端增加多进程解决方案 1.server端代码如下: #!/usr/bin/python #!coding:utf-8 import os,sys,time from socket import ...
- Oracle EBS-SQL (INV-2):检查帐户别名发放记录.sql
SELECT FU.description 操作者, ITM.SEGMENT1 物料编码, ITM.DESC ...
- Flex中如何通过设置GridLines对象的horizontalAlternateFill样式交错显示LineSeries图表背景颜色的例子
原文 http://blog.minidx.com/2008/11/27/1652.html 接下来的例子演示了Flex中如何通过设置GridLines对象的horizontalAlternateFi ...
- [zoj 3774]Power of Fibonacci 数论(二次剩余 拓展欧几里得 等比数列求和)
Power of Fibonacci Time Limit: 5 Seconds Memory Limit: 65536 KB In mathematics, Fibonacci numbe ...