Amazon CN记录

题目:将英文句子中的单词顺序进行翻转,但是单词本身不需要翻转.

//Solution 1
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define WORD_TOTAL_NUM 100
#define WORD_TOTAL_LEN 1024

//目前先假定10个单词
int g_Word_End_Positon[WORD_TOTAL_NUM] = {0};
int g_Word_Total_Num = 0;
char g_Final_Result[WORD_TOTAL_LEN] = {0};

//判断词的数量
int count_Word(char * input);

void get_SpecWord(char * input , int word_num, char * p_out_wordN);

void reverse_Two_String(char * str_Frist,char * str_Second);


int count_Word(char * input)
{
    int i=0;
    int count=0;
    if(input == NULL || strlen(input)==0)
        return 0;
        
    for(i=0;i<strlen(input);i++)
    {
        if(*(input+i)==' ')
        {
            g_Word_End_Positon[count] = i;
            count++;
        }
        if(*(input+i)=='\0')
        {
            g_Word_End_Positon[count] = i;  
            count++;  
            g_Word_Total_Num = count;
            return g_Word_Total_Num
        }
    }
    return 0;
}


void get_SpecWord(char * input , int word_num, char * p_out_wordN)
{
    if(input == NULL || strlen(input)==0||p_out_wordN == NULL || word_num > g_Word_Total_Num)
    {
        p_out_wordN = NULL;
        return;
    }
    
    if(word_num == 1)
        memcpy(p_out_wordN,input,g_Word_End_Positon[word_num-1]);       
    else
        memcpy(p_out_wordN,input+g_Word_End_Positon[word_num-2],g_Word_End_Positon[word_num-1]-g_Word_End_Positon[word_num-2]);       

}


 void reverse_Two_String(char * str_First,char * str_Second)
 {
     strcat(g_Final_Result,str_Second);
     strcat(g_Final_Result," ");
     strcat(g_Final_Result,str_First);
 }
 
 
 int main()
 {
     char input[WORD_TOTAL_LEN];
     int i =0;
     fget(input);
     
     count_Word(input);
     for(i=0;i<g_Word_Total_Num;i++)
     {
         get_SpecWord(input,i,);
         get_SpecWord(input,i,)
     }
 }
  

//++++++++++++++++++++++++++Solution 2++++++++++++++++++++++++++++++++
 void str_Swap(char * input,int start_index,int end_index)
 {
     char tmp_char;
     int start = 0;
     int end = end_i;
     
     for(;start<len;start++,end--)
     {
         tmp_char = input[start];
         input[start] = input[end];
         input[end] = tmp_char;
     }
 }
 
 
 void main()
 {
     int i=0;
     int j=0;
     int k=0;
     str_Swap(total_input,0,strlen(total_input));
     
     //
      for(i=0;i<strlen(total_input);i++)
      {
          k=i;
          if(*(total_input+i)==' ' || (*(total_input+i)=='\0'))
           {
              j=i;
              str_Swap(total_input,k,j);           
           }
      }
 }




题目: Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.

//++++++++++++++++++++++++++Solution 1++++++++++++++++++++++++++++++++
void insertTheNode(P_NODE cur)
{
    int i=0;
    int j=0;
    P_NODE tmp_spec;
    P_NODE tmp_mid;
    P_NODE tmp_before_spec;
    do{
       //find  the 2*i+1
       for(;tmp_spec.p_next != NULL && j<2*i+1;)
       {
            tmp_spec = (cur.p_next)->p_next; 
            tmp_before_spec = (cur.p_next);
            j++;           
        }
        tmp_mid = cur.p_next;
        
        //insert
       cur.p_next = tmp_spec;
       tmp_spec.p_next = tmp_mid;
       
       //delete
       tmp_before_spec.p_next = tmp_spec.p_next;
       cur = tmp_spec;
       i++;
    }while(cur.p_next != NULL)
}
//++++++++++++++++++++++++++Solution 2++++++++++++++++++++++++++++++++
//We should update like this
p_before_node2;
p_node2;
p_before_odd_node;
p_after_odd_node;

count =0 ;
while(start!=NULL){ 
    count++; 
    if(count ==1)
        p_before_node2 = start; 
    if(count ==2) 
        p_node2 = start; 
    if(count%2 == 0) 
        p_before_odd_node = start; 
    else 
    { 
        p_after_odd_node = start;
         //disconnect 
        p_before_odd_node->p_next = p_after_odd_node;

         //insert
        p_before_node2->p_next = start; 
        start->p_next = p_node2;

        //after insert, should update p_before_node2
        p_before_node2 = start;
    }
	start = start->p_next;
}

 

题目:将单向链表从中间断开,分成两部分

//++++++++++++++++++++++++++Solution 1++++++++++++++++++++++++++++++++
int getLinkCount(P_NODE * start)
{
    int count=0;
    while(start != NULL)
    {
        count++;
        start = start->p_next; 
    }
}


void outputLink(P_NODE * start)
{
    int count =0;
    int i=0;
    P_NODE part1;
    P_NODE part2;
    
    count = getLinkCount(start);
        
    part1 = (P_NODE)(* start);
    
    for(;i<(count/2);)
    {
        start = start->p_next;
        i++;
    }
    
    //update part2
    part2 = (P_NODE)(*(start->p_next));
    
    //disconnect 
    start->p_next = NULL;        
}

//++++++++++++++++++++++++++Solution 2++++++++++++++++++++++++++++++++
/ 优化后 /
//get mid element
P_NODE p_mid;
P_NODE p__tmp;
while(start != NULL){
     count++; 
     if(count%2==1) {
         //add linked node each 2 steps 
        p_tmp = start; 
        p_mid = p_tmp; 
        p_tmp = p_tmp->p_next; 
     }
      // search all the link node 
     start= start->p_next;
}





 

题目: Please write a C function to reverse an integrer.For example, 123 ==> 321

//++++++++++++++++++++++++++Solution 1++++++++++++++++++++++++++++++++
///  采用了一个投机的方法,理论上用迭代会比较合适  ///
int reverseNum(int num)
{
   char input[16]={0};
   int i_len =0;
   int start =0;
   char tmp;
   int result;
   input = itoa(num);
   i_len = strlen(input);


   for(;start < i_len-1;start++,i_len--)
   {
      tmp = input[start];
      input[start] = input[len-1];
      input[len-1] = tmp;
   }
}
  优化后  /
/++++++++++++++++++++++++++Solution 2++++++++++++++++++++++++++++++++
#include "stdio.h"
#include "stdlib.h
"int output=0;
int revNum(int shang,int yushu)
{ 
    output = (output + yushu)*10;
    if(shang<10) 
        output += shang; 
    else 
        revNum(shang/10,shang%10);
}

int main()
{ 
    int param=0; 
    printf("Input correct number:\r\n");
    scanf("%d",¶m); 
    printf("=========================\r\n");
    printf("%d => ",param); 
    revNum(param/10 , param%10);
    printf("%d\r\n", output);
    getchar();
     return 0;
}

 


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值